时间:2023-02-06 10:31:09 | 栏目:.NET代码 | 点击:次
本文实例为大家分享了C#实现简单的计算器功能的具体代码,供大家参考,具体内容如下
环境:VS2010及以上版本
1、建立个Window窗体应用
2、在工具箱里拖出两个TextBox,第一个放上面,第二个放下面 。主要这里的Name,上面是textBox1,下面是textBox2。这涉及到后面代码的书写
3、在工具栏里拖动Button,摆放好。可利用上面的对齐工具辅助设计。
4、在属性里改变各Button的Text,如下
注意这里的1~9,小数点,±*/ 的Text应只有一个字符,不要多输。←
5、选中任意一个Button,右键,选择查看代码,转到Form1.cs
6、开始写代码
AddNum 修改TextBox的Text,应用于1~9与小数点的Click事件
Reset 重置temp、myoperator,以及两个TextBox的Text
Delete 删除textBox2的Text最后一个字符
Calculate 把textBox2的Text转为double给temp,修改myoperator
Equal 具体的计算
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //----上面是自动生成的代码,下面得我们手写---- private double temp = 0; //存储临时数据 private char myoperator = ' '; //判断之前按的是+-*/中的哪个 private void AddNum(object sender, EventArgs e) { // 1~9与小数点的Click事件 //sender是引发该事件的控件,这里我们拆箱为Button Button button = (Button)sender; textBox2.Text += button.Text; } private void Reset(object sender, EventArgs e) { // CE的Click事件 temp = 0; myoperator = ' '; textBox1.Text = textBox2.Text = ""; } private void Delete(object sender, EventArgs e) { // ←的Click事件 //移除最后一个字符 if (textBox2.TextLength > 0) textBox2.Text = textBox2.Text.Remove(textBox2.TextLength - 1); } private void Calculate(object sender, EventArgs e) { // +-*/的Click事件 Button button = (Button)sender; if (double.TryParse(textBox2.Text, out temp)) //尝试把textBox2的Text转为double并赋值给temp { myoperator = button.Text[0]; //Text是string,取第一个字符 textBox1.Text = temp.ToString() + ' ' + myoperator; textBox2.Text = ""; } else { //转换失败,重置所有 Reset(sender, e); } } private void Equal(object sender, EventArgs e) { // = 的Click事件,计算并显示 double temp2; //尝试转换,失败则重置并返回 if (!double.TryParse(textBox2.Text, out temp2)) { Reset(sender, e); return; } switch (myoperator) { case '+': temp += temp2; break; case '-': temp -= temp2; break; case '*': temp *= temp2; break; case '/': temp /= temp2; break; default: break; } textBox1.Text = ""; textBox2.Text = temp.ToString(); } } }
7、设置各Button的Click事件
AddNum: 1~9与小数点的Click事件
Reset:CE的Click事件
Delete:←的Click事件
Calculate :±*/的Click事件
Equal:= 的Click事件
8、启动(F5)