你的位置:首页 > ASP.net教程

[ASP.net教程]winform(四)——简单计算器制作


效果图:

代码区:

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 WindowsFormsApplication2{  public partial class Form1 : Form  {    //存储上次点击了什么按钮,0代表什么都没点击,1代表点击了数字按钮,2代表点击了运算符    private int prev = 0;    //存储计算的中间结果    private decimal zj = 0;    //记录上次按的什么运算符    private string prevysf = "+";    public Form1()    {      InitializeComponent();    }    //数字键按钮    private void button8_Click(object sender, EventArgs e)    {      //将事件源转换为按钮      Button btn = sender as Button;      //替换(如果下面文本框内容为0或者上次点击了运算符)      if (prev == 2 || txtbottom.Text == "0")      {        txtbottom.Text = btn.Text;      }      //追加(如果下面文本框内容不为0并且上次没有点击运算符)      else      {        txtbottom.Text += btn.Text;      }      //点击了数字按钮      prev = 1;    }    //运算符按钮    private void button17_Click(object sender, EventArgs e)    {      Button btn = sender as Button;      //上次按了数字      if (prev == 1)      {        txttop.Text += txtbottom.Text + btn.Text;        switch (prevysf)        {          case "+":            zj = zj + Convert.ToDecimal(txtbottom.Text);            break;          case "-":            zj = zj - Convert.ToDecimal(txtbottom.Text);            break;          case "*":            zj = zj * Convert.ToDecimal(txtbottom.Text);            break;          case "/":            zj = zj / Convert.ToDecimal(txtbottom.Text);            break;        }        txtbottom.Text = zj.ToString();       }      //上次按了运算符      else      {        string s = txttop.Text;        s = s.Substring(0, s.Length - 1);        s = s + btn.Text;        txttop.Text = s;      }      //点击了运算符      prev = 2;      //记录下运算符      prevysf = btn.Text;         }    //清零按钮    private void button19_Click(object sender, EventArgs e)    {      txttop.Text = "";      txtbottom.Text = "0";      prev = 0;      zj = 0;      prevysf = "+";    }    private void button20_Click(object sender, EventArgs e)    {      txtbottom.Text = "0";    }    //等号按钮    private void button4_Click(object sender, EventArgs e)    {      Button btn = sender as Button;      txttop.Text += txtbottom.Text + btn.Text;      switch (prevysf)      {        case "+":          zj = zj + Convert.ToDecimal(txtbottom.Text);          break;        case "-":          zj = zj - Convert.ToDecimal(txtbottom.Text);          break;        case "*":          zj = zj * Convert.ToDecimal(txtbottom.Text);          break;        case "/":          zj = zj / Convert.ToDecimal(txtbottom.Text);          break;      }      txtbottom.Text = zj.ToString();      txttop.Text = "";            zj = 0;          }    //点    private void button3_Click(object sender, EventArgs e)    {      txtbottom.Text += ".";    }  }}