WinForms示例项目:使用MaterialSkin控件实现一个简易计算器

MaterialSkin 皮肤控件 很漂亮的皮肤控件,可以直接在项目中引用,有需要可以下载。 立即下载

项目概述

本文介绍如何使用C# WinForms和MaterialSkin控件库创建一个美观实用的计算器应用。该项目结合了Material Design设计语言,支持完整的四则运算功能,并通过尺寸优化实现了完美的视觉体验。

GitCode地址:MaterialCalculator

实现过程

计算逻辑

实现连续计算功能,支持复杂的运算表达式:

private double result = 0;
private string lastOperation = "";
private bool newOperation = true;

private void PerformCalculation(double value)
{
    switch (lastOperation)
    {
        case "+": result += value; break;
        case "-": result -= value; break;
        case "×": result *= value; break;
        case "÷": 
            if (value != 0) 
                result /= value; 
            else 
                throw new DivideByZeroException("不能除以零");
            break;
    }
}

关键特性

Material Design主题
var materialSkinManager = MaterialSkinManager.Instance;
materialSkinManager.AddFormToManage(this);
materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT;
materialSkinManager.ColorScheme = new ColorScheme(
    Primary.Blue800,     // 主色调
    Primary.Blue900,     // 深色调
    Primary.Blue500,     // 浅色调
    Accent.LightBlue200, // 强调色
    TextShade.WHITE      // 文字颜色
);
错误处理

完善的异常处理机制,确保程序稳定运行:

try
{
    double currentValue = double.Parse(txtDisplay.Text);
    PerformCalculation(currentValue);
}
catch (DivideByZeroException)
{
    MessageBox.Show("不能除以零!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
    ClearAll();
}
catch (Exception ex)
{
    MessageBox.Show($"计算错误: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
快捷键支持
// 菜单栏快捷键
this.aboutToolStripMenuItem.Text = "关于(&A)";  // Alt+A
this.exitToolStripMenuItem.Text = "退出(&X)";    // Alt+X

// 数字按钮快捷输入(可通过键盘输入)

功能亮点

  1. 连续计算:支持如 1 + 2 + 3 = 6 的连续运算
  2. 实时纠错:自动处理除零等错误情况
  3. 美观界面:Material Design设计,色彩协调
  4. 响应式布局:按钮大小适中,触控友好
  5. 完整功能:包括CE、C、退格、正负号转换等

编译与运行 (具体方法可打开项目README.md文件查看)

  1. 克隆或下载项目源码
  2. 使用Visual Studio打开解决方案
  3. 还原NuGet包或添加MaterialSkin引用
  4. 按F5编译运行
MaterialSkin界面控件 MaterialSkin界面控件,非常好的界面控件哦 。好东西大家共享 立即下载

相关推荐

STM32H750_QSPI_Flash_Configuration_With_CubeMX

本文详细介绍了如何使用STM32CubeMX配置STM32H750的QSPI Flash接口,包括硬件连接、CubeMX参数设置、代码生成与初始化流程优化。通过实战示例展示了Flash ID读取、页编程与数据读取等常用操作,并提供了调试技巧与性能优化建议,帮助开发者高效实现高速外部存储扩展。

weixin_29176179的博客 274

C# Winform控件包 MaterialSkin使用教程 免费开源,支持中文!

C# Winform控件包 MaterialSkin使用教程 免费开源,支持中文!本篇是总教程,着重写了如何引用MaterialSkin控件包和一些基础使用技巧,如更换颜色和主题等。

XX_YYDS的博客 4万+

Informer:比Transformer更有效的长时间序列预测

目录 AAAI 2021最佳论文:比Transformer更有效的长时间序列预测 Background Why attention Methods:the details of Informer Solve_Challenge_1:最基本的一个思路就是降低Attention的计算量,仅计算一些非常重要的或者说有代表性的Attention即可,一些相近的思路在近期不断的提出,比如Sparse-Attention,这个方法涉及了稀疏化Attention的操作,来减少Attention计算量,然后涉及的

To be a better man 1万+

C# Winform控件包 MaterialSkin使用教程 -- 横向导航栏

本期教大家如何给Winform程序设置一个水平导航栏,使用MaterialSkin开源控件包进行美化,与侧边栏十分相似,却又有些许不同,总的来说是十分美观的,抓紧学习,大家一起卷起来!

XX_YYDS的博客 1万+

本地部署大模型框架 LMStudio和Ollama+WebUI对比

之前我们的辣妈系列文章介绍了很多如何使用Ollama框架+OpenWebUI做很多大模型框架下相关的事情。之后我们也尝试了LMStudio这样一体化的工具。本文介绍下LMStudio 和 Ollama+Web UI 各有优劣,具体选择取决于你的需求。

ms44的专栏 4028

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

dify1.3.1应用服务与数据服务分离,附件及插件包迁移至minio,实现离线部署,保证插件正常运行

Time_1023的博客 1873

C# Winform控件包 MaterialSkin使用教程 -- 侧边栏篇

这期说的可能比较啰嗦,因为防止有一些萌新不会用 TabControl 控件,篇幅会比较长,希望大家可以静下心来,将这些学会,就可以做出一个模板出来, 以后每次使用可以去复制模板,一次辛苦,以后都会很舒服!......

XX_YYDS的博客 2万+

超分辨率重建:ESPCN与SRGAN技术对比

超分辨率重建:ESPCN与SRGAN技术对比​ 人工智能,计算机视觉,大模型,AI,超分辨率重建是一种通过技术手段,将低分辨率图像转换为高分辨率图像的过程。它的目的是恢复低分辨率图像中丢失的细节信息,使图像具有更高的清晰度和视觉质量。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

Winform第三方库MaterialSkin使用教程1---如何在Winform项目中导入MaterialSkin组件

MaterialSkin是一个开源的Winfrom第三方库,它提供了很多仿谷歌设计风格的组件,它可以使你的Winfrom窗体程序更加美观。下载链接可以参考这位博主这里我就不重复造轮子了,我只讲一下详细的操作步骤和我踩过的坑。

weixin_63838855的博客 4641

基于STM32、HAL库的MCP4651-503E/ST数字电位器驱动程序设计

@param channel: 通道 (0: A通道, 1: B通道)* @param channel: 通道 (0: A通道, 1: B通道)// SPI1 SCK/MISO/MOSI引脚配置。* @param hmcp: MCP4651句柄。* @param hmcp: MCP4651句柄。* @param hmcp: MCP4651句柄。* @param hmcp: MCP4651句柄。* @param hmcp: MCP4651句柄。* @param hspi: SPI句柄。

corlin6688的博客 137

第1章 机器人SLAM算法工程师主要做什么的?(附SLAM学习路线及资料推荐)

对于想从事机器人与自动驾驶领域的在校大学生、研究生来说,建图定位算法工程师是一个极具发展潜力的岗位,而SLAM知识体系则是胜任该岗位的核心支撑。从基础的计算机工具、C++语言,到核心的开源框架、数学知识,再到硬件衔接与项目实践,每一个环节都不可或缺。建议大家结合自身兴趣确定侧重方向(如激光SLAM、融合定位),先通过开源项目建立实践认知,再补全理论知识,同时积极参与社区交流。

行知SLAM 953

C# Winform控件包 MaterialSkin使用教程 -- Button 按钮篇

这款控件包是基于MaterialSkin2二次开发的,可以更换想要的皮肤主题,一键转换暗色系,还拥有非常炫酷的动画。 本篇介绍了按钮的设置,这些按钮需要设置的属性其实很少,在DLL中封装好的内容占大多数,这也是我推荐这款控件包的原因,因为像字体、大小、颜色,如果每个控件都要修改一次,那程序员大部分时间就花在了界面上,但是如果不愿意花时间,界面就会非常丑。 使用这款控件包,可以用极少的设置次数实现非常优质的效果,同时更换主题和更换颜色的功能,又能让界面摆脱乏味,一种搭配看厌了就更换成其他颜色,灵活性非常高。

XX_YYDS的博客 1万+

OpenCV-Python实战(26)——复杂场景下的实时物体检测与跟踪

本节介绍了一种鲁棒的特征跟踪方法,该方法速度足够快,能够实时应用于网络摄像头的视频流。首先,算法展示了如何在一幅图像中提取和检测重要特征——无论是我们感兴趣的模板图像(训练图像),还是预期包含该物体的更复杂场景(查询图像),这些特征都具有视角和尺寸不变性。然后对关键点进行聚类,找到两幅图像中特征点之间的匹配。在此基础上,可以计算出一个将一组特征点映射到另一组的透视变换矩阵。利用这些信息,我们可以在查询图像中勾勒出训练图像的轮廓,并对查询图像进行透视变换,使感兴趣的物体以直立状态显示在屏幕中央。

盼小辉丶的博客 1911

C# Winform控件包 MaterialSkin使用教程 -- 一些配色方案

准备了一些常用的配色方案,不定期更新。

XX_YYDS的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【亲测免费】 MaterialSkin 项目常见问题解决方案

**MaterialSkin** 是一个开源项目,旨在将 Google 的 Material Design 设计原则应用于 .NET WinForms 应用程序。该项目支持 C# 和 VB.NET 语言,允许开发者为他们的 Windows 窗体应用程序添加 Material Design 风格的界面。 ## 2. 新手在使用 MaterialSkin 项目时需要注意的 3 个问题及详细解决步骤 ...

gitblog_07401的博客 817

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C#Winform控件包MaterialSkin使用教程-横向导航栏

C# Winform控件包 MaterialSkin使用教程 -- 横向导航栏-优快云博客

j17805056906的博客 502

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

分享5款开源、美观的 WinForm UI 控件库

今天大姚给大家分享5款开源、美观的 WinForm UI 控件库,助力让我们的 WinForm 应用更好看。

专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。 2671

在WinForms中使用MD皮肤

Material Skin for .Net WinForms TODO: 本文由 赤石俊哉 翻译整理,您可以随意用于学习交流使用,转载之前请注明出处。 参考 GitHub - IgnaceMaes/MaterialSkin: Theming .NET WinForms, C# or VB.NET, to Google’s Material Design Principles. 以

小赤石的Code Space 6352

关于c#winform使用MaterialSkin里面的materialContextMenuStrip控件出现的问题

首先是开始运行以后,出现了未将对象引用到对象的示例,这个问题是因为对象没有实例化,我们打开窗口应用程序的form1.designer 然后在 form1里面 添加this.ContextMenuStrip = this.materialContextMenuStrip1; 这句话的意思,我理解是因为在库里面是打开了,可是并没有给到真正的窗体应用程序form1,所以导致了右键以后没有弹出真正的菜单栏...

weixin_42096303的博客 4415

第6章第4节:自定义分词器

本节详解Elasticsearch自定义分词器,解析analyzer三段式结构(char_filter→tokenizer→filter),掌握常用组件如ik_max_word、synonym_graph、ngram等。通过_analyze API调试分词效果,实现“索引时扩展同义词、搜索时不带”的生产级方案,提升中文搜索与智能提示体验。

啊渊的专栏 302

C#使用opencv和Yolo模型识别车牌号

本文基于OpenCVSharp与OnnxRuntime,结合YoloV8n-pose_plate模型(检测车牌位置)和OCR模型(识别车牌文字),实现高效车牌识别。通过预处理、目标检测、NMS筛选及文字识别流程,最终输出车牌框位置与识别文本。代码封装良好,支持自定义路径与置信度阈值,具备实际应用价值。

lweiyue的专栏 173

C# NAFNet 图片去模糊

基于NAFNet与ONNX Runtime的C# WinForms图片去模糊工具,支持DirectML GPU加速与CPU回退,实现一键去模糊、大图分块处理、并排对比及拖拽打开。具备高DPI适配、自绘圆角界面、命令行批量处理等功能,适用于Windows 10/11系统,可灵活配置模型路径与分块大小,解决显存不足与边缘接缝问题。

hixiong123的博客 259

使用C#代码提取、修改或删除 Excel 中的超链接

通过 C# 和 VB.NET,可以方便地管理 Excel 文件中的超链接,包括提取、修改和删除等操作。提取超链接: 获取工作表中的超链接集合,读取每个超链接的地址和类型,并将相关信息保存到文本文件中。修改超链接: 更新超链接的显示文本和目标地址,确保链接信息准确。删除超链接: 移除指定的超链接,同时可以选择保留单元格中的原有显示文本,或清除单元格的全部内容。这些操作可以帮助开发人员更高效地管理 Excel 文档中的链接信息,减少重复的手动操作,也便于在数据迁移、文档维护和自动化报表处理等场景中使用。

2501_93070778的博客 234

C#: 控件不支持透明的背景色

把透明度固定为255。

海天鹰 43

week11-词云图

核心逻辑:词频越高,文字字号越大;适合快速看文本高频关键词(影评、评论、摘要文本非常适配 CommentInfo.csv)

m0_66244637的博客 140
下一篇: 创建你的第一个C# WinForms应用程序
Rainy-0
博客等级 码龄2年 5粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值