winform制作简单计算器

Posted 浆糊033

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform制作简单计算器相关的知识,希望对你有一定的参考价值。

  1 public Form1()
  2         {
  3             InitializeComponent();
  4             textBox2.Text = "0";//主显示屏
  5             textBox1.Text = "";//顶端副显示屏
  6             textBox3.Text = "";//中间变量,隐藏
  7             
  8         }
  9 
 10         private void Form1_Load(object sender, EventArgs e)
 11         {
 12 
 13         }
 14         //数字按键
 15         private void button21_Click(object sender, EventArgs e)
 16         {
 17             if (sender is Button)
 18             {
 19                 Button btn = sender as Button;
 20                 if (textBox2.Text == "0")//如果主屏幕为0
 21                 {
 22                     textBox2.Text = btn.Text;//输入几就显示几
 23                 }
 24                 else
 25                 {
 26                     if (yunsuanfu)//上个按键是运算符
 27                     {
 28                         textBox2.Text = btn.Text;//主屏幕只显示本次输入的数字
 29                         yunsuanfu = false;
 30                     }
 31                     else
 32                     {
 33                         textBox2.Text += btn.Text;//上个按键不是运算符,主屏幕右侧累添上这个数字
 34                     }
 35                 }
 36             }
 37         }
 38 
 39         //加减乘除
 40         private bool yunsuanfu = false;
 41         private double jieguo1 = 0;//点击加减乘除运算符显示的结果
 42         private string text = "";
 43         private void button26_Click(object sender, EventArgs e)
 44         {
 45             if (sender is Button)
 46             {
 47                 Button btn = sender as Button;
 48                 text = btn.Text;
 49                 if(textBox3.Text=="")
 50                 {
 51                     textBox3.Text = btn.Text;
 52                 }
 53                 //判断上一步点击的是否是运算符
 54                 if (yunsuanfu==false)//不是运算符
 55                 {
 56                     textBox1.Text += textBox2.Text + text;
 57                     yunsuanfu = true;
 58                     if(textBox3.Text=="+")
 59                     {
 60                         jieguo1 += Convert.ToDouble(textBox2.Text);
 61                         textBox2.Text = jieguo1.ToString();
 62                     }
 63                     else if (textBox3.Text == "-")
 64                     {
 65                         jieguo1 -= Convert.ToDouble(textBox2.Text);
 66                         textBox2.Text = jieguo1.ToString();
 67                     }
 68                     else if (textBox3.Text == "*")
 69                     {
 70                         if (jieguo1 != 0)
 71                         {
 72                             jieguo1 = jieguo1 * Convert.ToDouble(textBox2.Text);
 73                         }
 74                         else
 75                         {
 76                             jieguo1 = Convert.ToDouble(textBox2.Text);
 77                         }
 78                         textBox2.Text = jieguo1.ToString();
 79                     }
 80                     else if (textBox3.Text == "/")
 81                     {
 82                         if (Convert.ToDouble(textBox2.Text) != 0)
 83                         {
 84                             if (jieguo1 != 0)
 85                             {
 86                                 jieguo1 = jieguo1 / Convert.ToDouble(textBox2.Text);
 87                             }
 88                             else
 89                             {
 90                                 jieguo1 = Convert.ToDouble(textBox2.Text); ;
 91                             }
 92                             textBox2.Text = jieguo1.ToString();
 93                         }
 94                         else
 95                         {
 96                             textBox2.Text = "除数不能为0";
 97                         }
 98                     }
 99                     
100                     textBox3.Text = text;
101                 }
102                 else
103                 {
104                     if (textBox1.Text.Length > 0)
105                     {
106                         textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1) + text;
107                         textBox3.Text = text;
108                     }
109                     else
110                     {
111                         textBox3.Text = text;
112                     }
113                     yunsuanfu = false;
114                 }
115             }
116         }
117 
118         //小数点
119         private void button25_Click(object sender, EventArgs e)
120         {
121             //判断上一步点击的是否是运算符
122             if (yunsuanfu == false)//不是运算符
123             {
124                 if (textBox2.Text.Contains(".") == false)
125                 {
126                     textBox2.Text = textBox2.Text + ".";
127                 }
128             }
129             else
130             {
131                 textBox2.Text = "0.";
132                 yunsuanfu = false;
133             }
134         }
135 
136         //等号
137         private double jieguo = 0;
138         private string text4 = "";
139         private string text5 = "";
140         private void button28_Click(object sender, EventArgs e)
141         {
142             jieguo = jieguo1;
143             jieguo1 = 0;
144             text4 = textBox3.Text;
145             textBox3.Text = "";
146             text = "";
147             if (text4 == "")
148             {
149                 text4 = button28.Text;
150             }
151 
152             textBox1.Clear();
153             textBox1.Text = "";
154             //判断上一步点击的是否是运算符
155             if (yunsuanfu == false)//不是运算符
156             {
157                 yunsuanfu = true;
158                 if (text4 == "+")
159                 {
160                     jieguo += Convert.ToDouble(textBox2.Text);
161                     textBox2.Text = jieguo.ToString();
162                 }
163                 else if (text4 == "-")
164                 {
165                     jieguo -= Convert.ToDouble(textBox2.Text);
166                     textBox2.Text = jieguo.ToString();
167                 }
168                 else if (text4 == "*")
169                 {
170                     if (jieguo != 0)
171                     {
172                         jieguo = jieguo * Convert.ToDouble(textBox2.Text);
173                     }
174                     else
175                     {
176                         jieguo = Convert.ToDouble(textBox2.Text);
177                     }
178                     textBox2.Text = jieguo.ToString();
179                 }
180                 else if (text4 == "/")
181                 {
182                     if (textBox2.Text != "0")
183                     {
184                         if (jieguo != 0)
185                         {
186                             jieguo = jieguo / Convert.ToDouble(textBox2.Text);
187                         }
188                         else
189                         {
190                             jieguo = Convert.ToDouble(textBox2.Text); ;
191                         }
192                         textBox2.Text = jieguo.ToString();
193                     }
194                     else
195                     {
196                         textBox2.Text = "除数不能为0";
197                     }
198                 }
199                 else if (text4 == "=")
200                 {
201                     jieguo = jieguo;
202                 }
203                 
204                 text5 = text4;
205                 text4 = button28.Text;
206             }
207             else
208             {
209                 yunsuanfu = false;
210                 double jishu = 0;
211                 if (text4 == "+")
212                 {
213                     jishu = jieguo;
214                     jieguo += jishu;
215                     
216                     textBox2.Text = jieguo.ToString();
217                 }
218                 else if (text4 == "-")
219                 {
220                     jishu = jieguo;
221                     jieguo -=jishu;
222                     
223                     textBox2.Text = jieguo.ToString();
224                 }
225                 else if (text4 == "*")
226                 {
227                     jishu = jieguo;
228                     jieguo=jieguo*jishu;
229                     
230                     textBox2.Text = jieguo.ToString();
231                 }
232                 else if (text4 == "/")
233                 {
234                     if (jieguo != 0)
235                     {
236                         jishu = jieguo;
237                         jieguo = jieguo / jishu;
238                         
239                         textBox2.Text = jieguo.ToString();
240                     }
241                     else
242                     {
243                         textBox2.Text = "除数不能为0";
244                     }
245                 }
246                 else if (text4 == "=")
247                 {
248                     jishu =Convert.ToDouble(textBox1.Text);
249                     if (text5 == "+")
250                     {
251                         jieguo+=jishu ;
252                     }
253                     else if (text5 == "-")
254                     {
255                         jieguo-=jishu;
256                     }
257                     else if (text5 == "*")
258                     {
259                         jieguo *=jishu;
260                     }
261                     else if (text5 == "/")
262                     {
263                         if (jishu != 0)
264                         {
265                             jieguo /= jishu;
266                         }
267                         else
268                         {
269                             textBox2.Text = "除数不能为0";
270                         }
271                     }
272                 }
273             }
274             yunsuanfu = false;
275             
276         }
277         //按键C
278         private void button8_Click(object sender, EventArgs e)
279         {
280             textBox2.Clear();
281             textBox1.Clear();
282             textBox3.Clear();
283             textBox2.Text = "0";
284             textBox1.Text = "";
285             textBox3.Text = "";
286             jieguo = 0;
287             jieguo1 = 0;
288             yunsuanfu = false;
289             text = "";
290             text4 = "";
291             text5 = "";
292         }
293         //CE键
294         private void button7_Click(object sender, EventArgs e)
295         {
296 
297             textBox2.Clear();
298             textBox2.Text = "0";
299         }
300         //退格键
301         private void button6_Click(object sender, EventArgs e)
302         {
303             if (textBox2.Text.Length > 1)
304             {
305                 textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
306             }
307             else if (textBox2.Text.Length == 1)
308             {
309                 textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
310                 textBox2.Text = "0";
311             }
312             else
313             {
314                 textBox2.Text = "0";
315             }
316         }
317         //主屏幕字体随个数变化而变化
318         private void textBox2_TextChanged(object sender, EventArgs e)
319         {
320             if (textBox2.Text.Length < 8)
321             {
322                 this.textBox2.Font = new System.Drawing.Font("宋体", 21.75f);
323             }
324             if (textBox2.Text.Length > 8)
325             {
326                 this.textBox2.Font = new System.Drawing.Font("宋体", 15f);
327             }
328             if (textBox2.Text.Length > 12)
329             {
330                 this.textBox2.Font = new System.Drawing.Font("宋体", 13f);
331             }
332             if (textBox2.Text.Length > 16)
333             {
334                 this.textBox2.Font = new System.Drawing.Font("宋体", 11f);
335             }
336         }
View Code

 

以上是关于winform制作简单计算器的主要内容,如果未能解决你的问题,请参考以下文章

python 用于在终端中运行的sublime text 3的简单代码片段制作工具

winform制作回车效果

C#中 winform程序 怎么制作纵向选项卡

想用winform制作一个闹钟,实现将自己下载音乐作为闹钟铃声

在制作winform程序时,设计模式中可以调整控件的大小位置,但是编译之后不能改变了,请问如何改变?

C#winform怎么弄出类似于excel的表格?简单点的就好