项目概述
本文介绍如何使用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 + 2 + 3 = 6的连续运算 - 实时纠错:自动处理除零等错误情况
- 美观界面:Material Design设计,色彩协调
- 响应式布局:按钮大小适中,触控友好
- 完整功能:包括CE、C、退格、正负号转换等
编译与运行 (具体方法可打开项目README.md文件查看)
- 克隆或下载项目源码
- 使用Visual Studio打开解决方案
- 还原NuGet包或添加MaterialSkin引用
- 按F5编译运行

被折叠的 条评论
为什么被折叠?



