c#语言windowform计算器,参考代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_FormClosing(object sender, FormClosingEventArgs e) { MessageBox.Show("确定要关闭吗?"); } private void Form1_Load(object sender, EventArgs e) { } /* private void button13_Click(object sender, EventArgs e) //事件主体,事件数据 { Button btn = (Button)sender; if (textBox1.Text == "0") { textBox1.Text = btn.Text; } else { textBox1.Text += btn.Text; } }*/ private void button21_Click(object sender, EventArgs e) { textBox1.Text = "0"; textBox2.Text = ""; } //记录是否刚点过运算符 //记录结果 //记录上一次的运算符 //记录表达式 private bool isok=true; private decimal sum; private string yunsuanfu; private string biaodashi; //当点击0的时候,不管有没有点击运算符,还是显示0 private void button26_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "0"; //isok = false; } else { textBox1.Text = "0"; } } //当点击1的时候,不管没有点击运算符,那就显示1,isok设为false,就是说如果没有点击运算符。就可以累加输入比如说输入123 private void button13_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "1"; isok = false; } else { textBox1.Text += "1"; } } private void button12_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "2"; isok = false; } else { textBox1.Text += "2"; } } private void button28_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "3"; isok = false; } else { textBox1.Text += "3"; } } private void button16_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "4"; isok = false; } else { textBox1.Text += "4"; } } private void button15_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "5"; isok = false; } else { textBox1.Text += "5"; } } private void button25_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "6"; isok = false; } else { textBox1.Text += "6"; } } private void button19_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "7"; isok = false; } else { textBox1.Text += "7"; } } private void button18_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "8"; isok = false; } else { textBox1.Text += "8"; } } private void button17_Click(object sender, EventArgs e) { if (isok) { textBox1.Text = "9"; isok = false; } else { textBox1.Text += "9"; } } //当点击加号的时候, private void button22_Click(object sender, EventArgs e) { if (yunsuanfu == null) //如果还没有输入运算符, { sum = decimal.Parse(textBox1.Text); //显示结果是输入的数 biaodashi = textBox1.Text; //显示的表达式也是输入的数 } else //如果点击了运算符 { if (!isok) //如果点击了加号,而又没有再点击其他运算符就开始下面的运算过程 { if (yunsuanfu == "+") { sum = sum + decimal.Parse(textBox1.Text); } if (yunsuanfu == "-") { sum = sum - decimal.Parse(textBox1.Text); } if (yunsuanfu == "*") { sum = sum * decimal.Parse(textBox1.Text); } if (yunsuanfu == "/") { sum = sum / decimal.Parse(textBox1.Text); } if (yunsuanfu == "%") { sum = sum % decimal.Parse(textBox1.Text); } biaodashi = biaodashi + yunsuanfu + textBox1.Text; //表达式的格式 } } textBox2.Text = biaodashi + "+"; //表达式在textBox2中显示 yunsuanfu = "+"; isok = true; //把isok设为true表示已经点了运算符,不能在点另一个运算符 textBox1.Text = sum.ToString(); //在textBox1中显示结果 } //当点击减号的时候 private void button27_Click(object sender, EventArgs e) { if (yunsuanfu == null) { sum = decimal.Parse(textBox1.Text); biaodashi = textBox1.Text; } else { if (!isok) { if (yunsuanfu == "+") { sum = sum + decimal.Parse(textBox1.Text); } if (yunsuanfu == "-") { sum = sum - decimal.Parse(textBox1.Text); } if (yunsuanfu == "*") { sum = sum * decimal.Parse(textBox1.Text); } if (yunsuanfu == "/") { sum = sum / decimal.Parse(textBox1.Text); } if (yunsuanfu == "%") { sum = sum % decimal.Parse(textBox1.Text); } biaodashi = biaodashi + yunsuanfu + textBox1.Text; } } textBox2.Text = biaodashi + "-"; yunsuanfu = "-"; isok = true; textBox1.Text = sum.ToString(); } //当点击乘号的时候 private void button23_Click(object sender, EventArgs e) { if (yunsuanfu == null) { sum = decimal.Parse(textBox1.Text); biaodashi = textBox1.Text; } else { if (!isok) { if (yunsuanfu == "+") { sum = sum + decimal.Parse(textBox1.Text); } if (yunsuanfu == "-") { sum = sum - decimal.Parse(textBox1.Text); } if (yunsuanfu == "*") { sum = sum * decimal.Parse(textBox1.Text); } if (yunsuanfu == "/") { sum = sum / decimal.Parse(textBox1.Text); } if (yunsuanfu == "%") { sum = sum % decimal.Parse(textBox1.Text); } biaodashi = biaodashi + yunsuanfu + textBox1.Text; } } textBox2.Text = biaodashi + "*"; yunsuanfu = "*"; isok = true; textBox1.Text = sum.ToString(); } private void button8_Click(object sender, EventArgs e) { if (yunsuanfu == null) { sum = decimal.Parse(textBox1.Text); biaodashi = textBox1.Text; } else { if (!isok) { if (yunsuanfu == "+") { sum = sum + decimal.Parse(textBox1.Text); } if (yunsuanfu == "-") { sum = sum - decimal.Parse(textBox1.Text); } if (yunsuanfu == "*") { sum = sum * decimal.Parse(textBox1.Text); } if (yunsuanfu == "/") { sum = sum / decimal.Parse(textBox1.Text); } if (yunsuanfu == "%") { sum = sum % decimal.Parse(textBox1.Text); } biaodashi = biaodashi + yunsuanfu + textBox1.Text; } } textBox2.Text = biaodashi + "/"; yunsuanfu = "/"; isok = true; textBox1.Text = sum.ToString(); } //当点击取余号的时候 private void button9_Click(object sender, EventArgs e) { if (yunsuanfu == null) { sum = decimal.Parse(textBox1.Text); biaodashi = textBox1.Text; } else { if (!isok)//只有不是刚点过运算符的时候,才会进行下面的运算 { if (yunsuanfu == "+") { sum = sum + decimal.Parse(textBox1.Text); } if (yunsuanfu == "-") { sum = sum - decimal.Parse(textBox1.Text); } if (yunsuanfu == "*") { sum = sum * decimal.Parse(textBox1.Text); } if (yunsuanfu == "/") { sum = sum / decimal.Parse(textBox1.Text); } if (yunsuanfu == "%") { sum = sum % decimal.Parse(textBox1.Text); } biaodashi = biaodashi + yunsuanfu + textBox1; } } textBox2.Text = biaodashi + "%"; yunsuanfu = "%"; isok = true; textBox1.Text = sum.ToString(); } //当点击后退按钮的时候,触发这个事件 private void button3_Click(object sender, EventArgs e) { if (!isok) { if (textBox1.Text.Length == 1) //如果textbox1里显示只有一个数字时,显示下面的结果,把isok设为true,意思是已经点击过运算符,再点击其他数字的时候0才会没有 { textBox1.Text = "0"; isok = true; } else //截取字符串,每点击一次,截取一位 { textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1); } } } //当点击小数点的时候 private void button14_Click(object sender, EventArgs e) { if (textBox1.Text =="0") { textBox1.Text = "0."; } if (!isok&&!textBox1.Text.Contains(".")) { textBox1.Text = textBox1.Text + "."; } isok = false; } //当点击等于号的时候 private void button11_Click(object sender, EventArgs e) { textBox2.Text = " "; if (yunsuanfu == "+") { sum = sum + decimal.Parse(textBox1.Text); } if (yunsuanfu == "-") { sum = sum - decimal.Parse(textBox1.Text); } if (yunsuanfu == "*") { sum = sum * decimal.Parse(textBox1.Text); } if (yunsuanfu == "/") { sum = sum / decimal.Parse(textBox1.Text); } if (yunsuanfu == "%") { sum = sum % decimal.Parse(textBox1.Text); } textBox1.Text = sum.ToString (); isok = true; yunsuanfu = null; sum = 0; } //当点击后退键的时候 private void button20_Click(object sender, EventArgs e) { if (!isok) { if (decimal.Parse(textBox1.Text) > 0) { textBox1.Text ="-"+ textBox1.Text ; } else { textBox1.Text = textBox1.Text.Substring(1); } } } } }