C# WinForm实现简单计算器(超详细)
注意:
软件:vs 2019
代码解析为了方便全部以注释的形式写在代码中
前言
这个程序很适合winform入门,毕竟我也是一个C#菜鸟
通过WinForm实现一个简单的计算器
先看一下 效果图:
一、创建项目
打开VS 2019→创建新项目→Window窗体应用 等待初始化
二、编写程序
1.程序分析
要知道自己要做什么。
界面分析 (窗口和控件大小自定义)
(1)窗口大小 :800×500
(2)控件数量(11个)
从图中可知需要 11 个控件和一个背景图
1、2为:TextBox
4、5、6、7、8、9为:Button
3、10、11为:Label
控件解析
(1)1、2为两个输入项所以使用 TextBox 控件
(2)3为 输出结果 不需要进行输入 所以定义为 Label
(3)4、5、6、7是用来改变运算的直接使用 Button 就行
(4)8、9直接定义为两个 Button
(5) “10” 为 运算符 “11” 为 等于 都不需要点击和输入所以使用 Label
2.逻辑理解
(看下面的图):
1)四个运算按钮是用来改变运算符的(4、5、6、7改变10)
2)“等于”按钮需要用来计算结果并在“3”中显示
3)“清除”按钮只需要来清除1、2、3中间的内容即可
3.代码实现
(1)点击运算符按钮改变运算符
(代码如下)
// 加法运算
private void Add_Click(object sender, EventArgs e)
{
Operator.Text = "+";
}
//减法运算
private void Sub_Click(object sender, EventArgs e)
{
Operator.Text = "-";
}
//乘法运算
private void Mul_Click(object sender, EventArgs e)
{
Operator.Text = "×";
}
//除法运算
private void Div_Click(object sender, EventArgs e)
{
Operator.Text = "÷";
}
代码解析:
任意点击一个运算符按钮改变运算符
即: 给“10”这个Label重新赋值: Operator.Text = "(运算符)"
(如果自己没有给Label命名的话代码为:Label1.Text = “(运算符)”)
(2)点击“等于”按钮输出结果并显示(解析看代码中的注释)
(代码如下)
注意:
“1”为Textbox1 改名为 value1
“2”为Textbox2 改名为 value2
“3”为 “输出”的 Label1 改名为 resultbox
“8”为“等于”按钮 :Button1 改名为 result
//等于按钮
private void result_Click(object sender, EventArgs e)
{
//首先判断两个输入项是否为空
if (value1.Text == ""&&value2.Text == "")
{
//为 “真” 弹出一个提示框,提示输入数据
MessageBox.Show("请输入数据!","提示",MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
//为 “假” 则开始运算
//定义两个double变量分别用来存放两个输入项的数据
double value1, value2;
//优化一下,避免第二项没有输入导致运算出错
//所以当value2.Text为空时,减value2赋值为0 保证运算结果
if (value2.Text == "")
{
//将 value1.Text 转为 double 类型的数值 并赋给 value1
value1 = Convert.ToDouble(value1.Text);
//value2.Text内容为“空” 将 value2 赋值为 0
value2 = 0;
}
else
{
//value2.Text内容为不为空
//将 value1.Text 转为 double 类型的数值 并赋给 value1
value1 = Convert.ToDouble(value1.Text);
//将 value2.Text 转为 double 类型的数值 并赋给 value2
value2 = Convert.ToDouble(value2.Text);
}
//Operator.Text的内容为“”字符串类型
//switch只能接收单个字符、变量、表达式
//将Operator.Text转为“字符”类型
//(明确我们只在Operator.Text放了一个字符)
switch (Convert.ToChar(Operator.Text))
{
//注意:case后面的字符一定要与Operator.Text中的字符相同(不要问我为什么)
case '+':
//resultbox.Text = (value1 + value2).ToString();
//解释一下为什么怎么写以及这个表达式的运算步骤 :
//先将(value1 + value2)的值转成字符串 然后赋值给resultbox.Text并在窗口中显示
resultbox.Text = (value1 + value2).ToString();
break;
case '-':
resultbox.Text = (value1 - value2).ToString();
break;
case '×':
resultbox.Text = (value1 * value2).ToString();
break;
case '÷':
//在除法运算中 除数不能为0的情况
if (value2==0)
{
resultbox.Text = "除数不能为零";
}
else
{
resultbox.Text = (value1 / value2).ToString();
}
break;
}
}
}
除数为0的情况(如下图)
(3)点击“清除”按钮清除输入和输出(解析看代码中的注释)
(代码如下)
//清除按钮
private void clear_Click(object sender, EventArgs e)
{
//将三个组件里面的内容赋值为空就可以了
value1.Text = "";
value2.Text = "";
resultbox.Text = "";
}
3、关于组件的对齐
在“设计”视图中选择要对其的一些组件(可以直接通过鼠标进行框选)
可以直接设置水平或垂直方向的间距相等
总结
提示:这里对文章进行总结:
首先说明本片文章主要是讲解这个简单“计算器”的实现的逻辑和原理
关于窗口的美化没什么好说的,可以自己去网上找窗口皮肤包下载
背景添加和控件的自己去摸索,这个我就不过多的赘述
以上就是今天要讲的内容,本文简单讲解了WinfForm程序的创建与使用
和简易计算器的逻辑结构
还有一个问题:
关于textbox中只想输入数字的方法可以自己去找解决方法(当然最简单的还是直接问我啦 )
答应我:从今天起做一个大方的人