1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9
10 namespace 帅的计算器
11 {
12 public partial class Form1 : Form
13 {
14 //类字段变量声明
15 //类字段:第一个运算数、第二个运算数、运算结果
16 private decimal _num1 = 0, _num2 = 0, _result = 0;
17 //类字段:运算符号
18 private string _operator = "";
19 //类字段:运算符号的数量
20 private int _operatorCount = 0;
21 //类字段:首数字标志位
22 private bool _firstNumberFlag = true;
23 //类字段:进制标志位
24 private string _NumberSystem = "dec";
25
26
27 //类方法:把十进制转化为二进制
28 public string DecToBin(int dec)
29 {
30 string bin = "";
31 while (dec > 1)
32 {
33 bin = Convert.ToChar(dec % 2 + '0') + bin;
34 dec = dec / 2;
35 }
36 bin = Convert.ToChar(dec + '0') + bin;
37
38 return bin;
39 }
40
41 //类方法:把二进制转化为十进制
42 public int BinToDec(string bin)
43 {
44 int dec = 0;
45 for (int i = bin.Length; i >= 1; i--)
46 {
47 dec = dec + Convert.ToInt32(bin[i - 1] - '0') * (int)(Math.Pow(2, bin.Length - i));
48 }
49
50 return dec;
51 }
52
53 //类方法:把十进制转化为八进制
54 public string DecToOct(int dec)
55 {
56 string oct = "";
57 while (dec > 7)
58 {
59 oct = Convert.ToChar(dec % 8 + '0') + oct;
60 dec = dec / 8;
61 }
62 oct = Convert.ToChar(dec + '0') + oct;
63
64 return oct;
65 }
66
67 //类方法:把八进制转化为十进制
68 public int OctToDec(string oct)
69 {
70 int dec = 0;
71 for (int i = oct.Length; i >= 1; i--)
72 {
73 dec = dec + Convert.ToInt32(oct[i - 1] - '0') * (int)(Math.Pow(8, oct.Length - i));
74 }
75
76 return dec;
77 }
78
79 //构造方法
80 public Form1()
81 {
82 InitializeComponent();
83 }
84
85 //按钮"0"的Click事件响应方法
86 private void buttonNum0_Click(object sender, EventArgs e)
87 {
88 //判断是否为首数字。如果是,则替换;如果否,则追加。
89 if (_firstNumberFlag == true)
90 {
91 //编辑框文字替换为"0"
92 textBoxResult.Text = "0";
93 //首数字标志位设为false
94 _firstNumberFlag = false;
95 }
96 else
97 //编辑框文字中追加一个"0"
98 textBoxResult.Text = textBoxResult.Text + "0";
99
100 //使输入焦点落到编辑框textBoxResult中
101 textBoxResult.Focus();
102 //让光标落在编辑框textBoxResult的最后面
103 textBoxResult.Select(textBoxResult.Text.Length, 0);
104 }
105
106 //按钮"1"的Click事件响应方法
107 private void buttonNum1_Click(object sender, EventArgs e)
108 {
109 //判断是否为首数字。如果是,则替换;如果否,则追加。
110 if (_firstNumberFlag == true)
111 {
112 //编辑框文字替换为"1"
113 textBoxResult.Text = "1";
114 //首数字标志位设为false
115 _firstNumberFlag = false;
116 }
117 else
118 //编辑框文字中追加一个"1"
119 textBoxResult.Text = textBoxResult.Text + "1";
120
121 //使输入焦点落到编辑框textBoxResult中
122 textBoxResult.Focus();
123 //让光标落在编辑框textBoxResult的最后面
124 textBoxResult.Select(textBoxResult.Text.Length, 0);
125 }
126
127 //按钮"2"的Click事件响应方法
128 private void buttonNum2_Click(object sender, EventArgs e)
129 {
130 //判断是否为首数字。如果是,则替换;如果否,则追加。
131 if (_firstNumberFlag == true)
132 {
133 //编辑框文字替换为"2"
134 textBoxResult.Text = "2";
135 //首数字标志位设为false
136 _firstNumberFlag = false;
137 }
138 else
139 //编辑框文字中追加一个"2"
140 textBoxResult.Text = textBoxResult.Text + "2";
141
142 //使输入焦点落到编辑框textBoxResult中
143 textBoxResult.Focus();
144 //让光标落在编辑框textBoxResult的最后面
145 textBoxResult.Select(textBoxResult.Text.Length, 0);
146 }
147
148 //按钮"3"的Click事件响应方法
149 private void buttonNum3_Click(object sender, EventArgs e)
150 {
151 //判断是否为首数字。如果是,则替换;如果否,则追加。
152 if (_firstNumberFlag == true)
153 {
154 //编辑框文字替换为"3"
155 textBoxResult.Text = "3";
156 //首数字标志位设为false
157 _firstNumberFlag = false;
158 }
159 else
160 //编辑框文字中追加一个"3"
161 textBoxResult.Text = textBoxResult.Text + "3";
162
163 //使输入焦点落到编辑框textBoxResult中
164 textBoxResult.Focus();
165 //让光标落在编辑框textBoxResult的最后面
166 textBoxResult.Select(textBoxResult.Text.Length, 0);
167 }
168
169 //按钮"4"的Click事件响应方法
170 private void buttonNum4_Click(object sender, EventArgs e)
171 {
172 //判断是否为首数字。如果是,则替换;如果否,则追加。
173 if (_firstNumberFlag == true)
174 {
175 //编辑框文字替换为"4"
176 textBoxResult.Text = "4";
177 //首数字标志位设为false
178 _firstNumberFlag = false;
179 }
180 else
181 //编辑框文字中追加一个"4"
182 textBoxResult.Text = textBoxResult.Text + "4";
183
184 //使输入焦点落到编辑框textBoxResult中
185 textBoxResult.Focus();
186 //让光标落在编辑框textBoxResult的最后面
187 textBoxResult.Select(textBoxResult.Text.Length, 0);
188 }
189
190 //按钮"5"的Click事件响应方法
191 private void buttonNum5_Click(object sender, EventArgs e)
192 {
193 //判断是否为首数字。如果是,则替换;如果否,则追加。
194 if (_firstNumberFlag == true)
195 {
196 //编辑框文字替换为"5"
197 textBoxResult.Text = "5";
198 //首数字标志位设为false
199 _firstNumberFlag = false;
200 }
201 else
202 //编辑框文字中追加一个"5"
203 textBoxResult.Text = textBoxResult.Text + "5";
204
205 //使输入焦点落到编辑框textBoxResult中
206 textBoxResult.Focus();
207 //让光标落在编辑框textBoxResult的最后面
208 textBoxResult.Select(textBoxResult.Text.Length, 0);
209 }
210
211 //按钮"6"的Click事件响应方法
212 private void buttonNum6_Click(object sender, EventArgs e)
213 {
214 //判断是否为首数字。如果是,则替换;如果否,则追加。
215 if (_firstNumberFlag == true)
216 {
217 //编辑框文字替换为"6"
218 textBoxResult.Text = "6";
219 //首数字标志位设为false
220 _firstNumberFlag = false;
221 }
222 else
223 //编辑框文字中追加一个"6"
224 textBoxResult.Text = textBoxResult.Text + "6";
225
226 //使输入焦点落到编辑框textBoxResult中
227 textBoxResult.Focus();
228 //让光标落在编辑框textBoxResult的最后面
229 textBoxResult.Select(textBoxResult.Text.Length, 0);
230 }
231
232 //按钮"7"的Click事件响应方法
233 private void buttonNum7_Click(object sender, EventArgs e)
234 {
235 //判断是否为首数字。如果是,则替换;如果否,则追加。
236 if (_firstNumberFlag == true)
237 {
238 //编辑框文字替换为"7"
239 textBoxResult.Text = "7";
240 //首数字标志位设为false
241 _firstNumberFlag = false;
242 }
243 else
244 //编辑框文字中追加一个"7"
245 textBoxResult.Text = textBoxResult.Text + "7";
246
247 //使输入焦点落到编辑框textBoxResult中
248 textBoxResult.Focus();
249 //让光标落在编辑框textBoxResult的最后面
250 textBoxResult.Select(textBoxResult.Text.Length, 0);
251 }
252
253 //按钮"8"的Click事件响应方法
254 private void buttonNum8_Click(object sender, EventArgs e)
255 {
256 //判断是否为首数字。如果是,则替换;如果否,则追加。
257 if (_firstNumberFlag == true)
258 {
259 //编辑框文字替换为"8"
260 textBoxResult.Text = "8";
261 //首数字标志位设为false
262 _firstNumberFlag = false;
263 }
264 else
265 //编辑框文字中追加一个"8"
266 textBoxResult.Text = textBoxResult.Text + "8";
267
268 //使输入焦点落到编辑框textBoxResult中
269 textBoxResult.Focus();
270 //让光标落在编辑框textBoxResult的最后面
271 textBoxResult.Select(textBoxResult.Text.Length, 0);
272 }
273
274 //按钮"9"的Click事件响应方法
275 private void buttonNum9_Click(object sender, EventArgs e)
276 {
277 //判断是否为首数字。如果是,则替换;如果否,则追加。
278 if (_firstNumberFlag == true)
279 {
280 //编辑框文字替换为"9"
281 textBoxResult.Text = "9";
282 //首数字标志位设为false
283 _firstNumberFlag = false;
284 }
285 else
286 //编辑框文字中追加一个"9"
287 textBoxResult.Text = textBoxResult.Text + "9";
288
289 //使输入焦点落到编辑框textBoxResult中
290 textBoxResult.Focus();
291 //让光标落在编辑框textBoxResult的最后面
292 textBoxResult.Select(textBoxResult.Text.Length, 0);
293 }
294
295 //按钮"."的Click事件响应方法
296 private void buttonDot_Click(object sender, EventArgs e)
297 {
298 //判断是否为首数字。如果是,则替换;如果否,则追加。
299 if (_firstNumberFlag == true)
300 {
301 //编辑框文字替换为"."
302 textBoxResult.Text = ".";
303 //首数字标志位设为false
304 _firstNumberFlag = false;
305 }
306 else
307 {
308 //判断现有数字中是否含有小数点
309 if (textBoxResult.Text.IndexOf('.') == -1)
310 //编辑框文字中追加一个"."
311 textBoxResult.Text = textBoxResult.Text + ".";
312 }
313
314 //使输入焦点落到编辑框textBoxResult中
315 textBoxResult.Focus();
316 //让光标落在编辑框textBoxResult的最后面
317 textBoxResult.Select(textBoxResult.Text.Length, 0);
318 }
319
320
321 //按钮"+"的Click事件响应方法
322 private void buttonAdd_Click(object sender, EventArgs e)
323 {
324 //首数字标志位设为true
325 _firstNumberFlag = true;
326
327 //运算符号数量加1
328 _operatorCount = _operatorCount + 1;
329 //判断是否为第一个运算符
330 if (_operatorCount == 1)
331 {
332 //保存第一个运算数到类字段变量_num1中(注意进制转化问题)
333 if (_NumberSystem == "dec")
334 _num1 = Convert.ToDecimal(textBoxResult.Text);
335 else if (_NumberSystem == "bin")
336 _num1 = BinToDec(textBoxResult.Text);
337 else if (_NumberSystem == "oct")
338 _num1 = OctToDec(textBoxResult.Text);
339 //保存运算符号到类字段变量_operator中
340 _operator = "+";
341 //清空编辑框
342 textBoxResult.Text = "";
343 }
344 else
345 {
346 //保存第二个运算数到类字段变量_num2中(注意进制转化问题)
347 if (_NumberSystem == "dec")
348 _num2 = Convert.ToDecimal(textBoxResult.Text);
349 else if (_NumberSystem == "bin")
350 _num2 = BinToDec(textBoxResult.Text);
351 else if (_NumberSystem == "oct")
352 _num2 = OctToDec(textBoxResult.Text);
353 //进行运算
354 if (_operator == "+")
355 _num1 = _num1 + _num2;
356 else if (_operator == "-")
357 _num1 = _num1 - _num2;
358 else if (_operator == "*")
359 _num1 = _num1 * _num2;
360 else if (_operator == "/")
361 _num1 = _num1 / _num2;
362 //保存运算符号到类字段变量_operator中
363 _operator = "+";
364 //在编辑框中显示前面数字的运算结果(注意进制转化问题)
365 if (_NumberSystem == "dec")
366 textBoxResult.Text = _num1.ToString();
367 else if (_NumberSystem == "bin")
368 textBoxResult.Text = DecToBin((int)_num1);
369 else if (_NumberSystem == "oct")
370 textBoxResult.Text = DecToOct((int)_num1);
371 }
372
373 //使输入焦点落到编辑框textBoxResult中
374 textBoxResult.Focus();
375 //让光标落在编辑框textBoxResult的最后面
376 textBoxResult.Select(textBoxResult.Text.Length, 0);
377 }
378
379 //按钮"-"的Click事件响应方法
380 private void buttonSubtract_Click(object sender, EventArgs e)
381 {
382 //首数字标志位设为true
383 _firstNumberFlag = true;
384
385 //运算符号数量加1
386 _operatorCount = _operatorCount + 1;
387 //判断是否为第一个运算符
388 if (_operatorCount == 1)
389 {
390 //保存第一个运算数到类字段变量_num1中(注意进制转化问题)
391 if (_NumberSystem == "dec")
392 _num1 = Convert.ToDecimal(textBoxResult.Text);
393 else if (_NumberSystem == "bin")
394 _num1 = BinToDec(textBoxResult.Text);
395 else if (_NumberSystem == "oct")
396 _num1 = OctToDec(textBoxResult.Text);
397 //保存运算符号到类字段变量_operator中
398 _operator = "-";
399 //清空编辑框
400 textBoxResult.Text = "";
401 }
402 else
403 {
404 //保存第二个运算数到类字段变量_num2中(注意进制转化问题)
405 if (_NumberSystem == "dec")
406 _num2 = Convert.ToDecimal(textBoxResult.Text);
407 else if (_NumberSystem == "bin")
408 _num2 = BinToDec(textBoxResult.Text);
409 else if (_NumberSystem == "oct")
410 _num2 = OctToDec(textBoxResult.Text);
411 //进行运算
412 if (_operator == "+")
413 _num1 = _num1 + _num2;
414 else if (_operator == "-")
415 _num1 = _num1 - _num2;
416 else if (_operator == "*")
417 _num1 = _num1 * _num2;
418 else if (_operator == "/")
419 _num1 = _num1 / _num2;
420 //保存运算符号到类字段变量_operator中
421 _operator = "-";
422 //在编辑框中显示前面数字的运算结果(注意进制转化问题)
423 if (_NumberSystem == "dec")
424 textBoxResult.Text = _num1.ToString();
425 else if (_NumberSystem == "bin")
426 textBoxResult.Text = DecToBin((int)_num1);
427 else if (_NumberSystem == "oct")
428 textBoxResult.Text = DecToOct((int)_num1);
429 }
430
431 //使输入焦点落到编辑框textBoxResult中
432 textBoxResult.Focus();
433 //让光标落在编辑框textBoxResult的最后面
434 textBoxResult.Select(textBoxResult.Text.Length, 0);
435 }
436
437 //按钮"*"的Click事件响应方法
438 private void buttonMultiply_Click(object sender, EventArgs e)
439 {
440 //首数字标志位设为true
441 _firstNumberFlag = true;
442
443 //运算符号数量加1
444 _operatorCount = _operatorCount + 1;
445 //判断是否为第一个运算符
446 if (_operatorCount == 1)
447 {
448 //保存第一个运算数到类字段变量_num1中(注意进制转化问题)
449 if (_NumberSystem == "dec")
450 _num1 = Convert.ToDecimal(textBoxResult.Text);
451 else if (_NumberSystem == "bin")
452 _num1 = BinToDec(textBoxResult.Text);
453 else if (_NumberSystem == "oct")
454 _num1 = OctToDec(textBoxResult.Text);
455 //保存运算符号到类字段变量_operator中
456 _operator = "*";
457 //清空编辑框
458 textBoxResult.Text = "";
459 }
460 else
461 {
462 //保存第二个运算数到类字段变量_num2中(注意进制转化问题)
463 if (_NumberSystem == "dec")
464 _num2 = Convert.ToDecimal(textBoxResult.Text);
465 else if (_NumberSystem == "bin")
466 _num2 = BinToDec(textBoxResult.Text);
467 else if (_NumberSystem == "oct")
468 _num2 = OctToDec(textBoxResult.Text);
469 //进行运算
470 if (_operator == "+")
471 _num1 = _num1 + _num2;
472 else if (_operator == "-")
473 _num1 = _num1 - _num2;
474 else if (_operator == "*")
475 _num1 = _num1 * _num2;
476 else if (_operator == "/")
477 _num1 = _num1 / _num2;
478 //保存运算符号到类字段变量_operator中
479 _operator = "*";
480 //在编辑框中显示前面数字的运算结果(注意进制转化问题)
481 if (_NumberSystem == "dec")
482 textBoxResult.Text = _num1.ToString();
483 else if (_NumberSystem == "bin")
484 textBoxResult.Text = DecToBin((int)_num1);
485 else if (_NumberSystem == "oct")
486 textBoxResult.Text = DecToOct((int)_num1);
487 }
488
489 //使输入焦点落到编辑框textBoxResult中
490 textBoxResult.Focus();
491 //让光标落在编辑框textBoxResult的最后面
492 textBoxResult.Select(textBoxResult.Text.Length, 0);
493 }
494
495 //按钮"/"的Click事件响应方法
496 private void buttonDivide_Click(object sender, EventArgs e)
497 {
498 //首数字标志位设为true
499 _firstNumberFlag = true;
500
501 //运算符号数量加1
502 _operatorCount = _operatorCount + 1;
503 //判断是否为第一个运算符
504 if (_operatorCount == 1)
505 {
506 //保存第一个运算数到类字段变量_num1中(注意进制转化问题)
507 if (_NumberSystem == "dec")
508 _num1 = Convert.ToDecimal(textBoxResult.Text);
509 else if (_NumberSystem == "bin")
510 _num1 = BinToDec(textBoxResult.Text);
511 else if (_NumberSystem == "oct")
512 _num1 = OctToDec(textBoxResult.Text);
513 //保存运算符号到类字段变量_operator中
514 _operator = "/";
515 //清空编辑框
516 textBoxResult.Text = "";
517 }
518 else
519 {
520 //保存第二个运算数到类字段变量_num2中(注意进制转化问题)
521 if (_NumberSystem == "dec")
522 _num2 = Convert.ToDecimal(textBoxResult.Text);
523 else if (_NumberSystem == "bin")
524 _num2 = BinToDec(textBoxResult.Text);
525 else if (_NumberSystem == "oct")
526 _num2 = OctToDec(textBoxResult.Text);
527 //进行运算
528 if (_operator == "+")
529 _num1 = _num1 + _num2;
530 else if (_operator == "-")
531 _num1 = _num1 - _num2;
532 else if (_operator == "*")
533 _num1 = _num1 * _num2;
534 else if (_operator == "/")
535 _num1 = _num1 / _num2;
536 //保存运算符号到类字段变量_operator中
537 _operator = "/";
538 //在编辑框中显示前面数字的运算结果(注意进制转化问题)
539 if (_NumberSystem == "dec")
540 textBoxResult.Text = _num1.ToString();
541 else if (_NumberSystem == "bin")
542 textBoxResult.Text = DecToBin((int)_num1);
543 else if (_NumberSystem == "oct")
544 textBoxResult.Text = DecToOct((int)_num1);
545 }
546
547 //使输入焦点落到编辑框textBoxResult中
548 textBoxResult.Focus();
549 //让光标落在编辑框textBoxResult的最后面
550 textBoxResult.Select(textBoxResult.Text.Length, 0);
551 }
552
553 //按钮"="的Click事件响应方法
554 private void buttonEqual_Click(object sender, EventArgs e)
555 {
556 //保存第二个运算数到类字段变量_num2中(注意进制转化问题)
557 if (_NumberSystem == "dec")
558 _num2 = Convert.ToDecimal(textBoxResult.Text);
559 else if (_NumberSystem == "bin")
560 _num2 = BinToDec(textBoxResult.Text);
561 else if (_NumberSystem == "oct")
562 _num2 = OctToDec(textBoxResult.Text);
563 //进行运算
564 if (_operator == "+")
565 _result = _num1 + _num2;
566 else if (_operator == "-")
567 _result = _num1 - _num2;
568 else if (_operator == "*")
569 _result = _num1 * _num2;
570 else if (_operator == "/")
571 _result = _num1 / _num2;
572 //在编辑框中显示运算结果(注意进制转化问题)
573 if (_NumberSystem == "dec")
574 textBoxResult.Text = _result.ToString();
575 else if (_NumberSystem == "bin")
576 textBoxResult.Text = DecToBin((int)_result);
577 else if (_NumberSystem == "oct")
578 textBoxResult.Text = DecToOct((int)_result);
579
580 //运算符号数量清零
581 _operatorCount = 0;
582
583 //使输入焦点落到编辑框textBoxResult中
584 textBoxResult.Focus();
585 //让光标落在编辑框textBoxResult的最后面
586 textBoxResult.Select(textBoxResult.Text.Length, 0);
587 }
588
589 //按钮"<-"的Click事件响应方法
590 private void buttonBackSpace_Click(object sender, EventArgs e)
591 {
592 //如果textBoxResult.Text不为空
593 if (textBoxResult.Text.Length > 0)
594 //去除textBoxResult.Text中的最后一个字符
595 textBoxResult.Text = textBoxResult.Text.Substring(0, textBoxResult.Text.Length - 1);
596
597 //使输入焦点落到编辑框textBoxResult中
598 textBoxResult.Focus();
599 }
600
601 //按钮"C"的Click事件响应方法
602 private void buttonClear_Click(object sender, EventArgs e)
603 {
604 //初始化有关类字段变量
605 _num1 = 0;
606 _num2 = 0;
607 _result = 0;
608 _operator = "";
609 _operatorCount = 0;
610 _firstNumberFlag = false;
611 //清空编辑框
612 textBoxResult.Text = "";
613
614 //使输入焦点落到编辑框textBoxResult中
615 textBoxResult.Focus();
616 //让光标落在编辑框textBoxResult的最后面
617 textBoxResult.Select(textBoxResult.Text.Length, 0);
618 }
619
620 //按钮"+/-"的Click事件响应方法
621
622
623 //编辑框的KeyPress(键盘下压)事件的响应方法
624 private void textBoxResult_KeyPress(object sender, KeyPressEventArgs e)
625 {
626 //根据用户按下的键的值,调用相应的响应方法
627 if (e.KeyChar == '0')
628 buttonNum0_Click(sender, e);
629 else if (e.KeyChar == '1')
630 buttonNum1_Click(sender, e);
631 else if (e.KeyChar == '2')
632 buttonNum2_Click(sender, e);
633 else if (e.KeyChar == '3')
634 buttonNum3_Click(sender, e);
635 else if (e.KeyChar == '4')
636 buttonNum4_Click(sender, e);
637 else if (e.KeyChar == '5')
638 buttonNum5_Click(sender, e);
639 else if (e.KeyChar == '6')
640 buttonNum6_Click(sender, e);
641 else if (e.KeyChar == '7')
642 buttonNum7_Click(sender, e);
643 else if (e.KeyChar == '8')
644 buttonNum8_Click(sender, e);
645 else if (e.KeyChar == '9')
646 buttonNum9_Click(sender, e);
647
648 else if (e.KeyChar == '+')
649 buttonAdd_Click(sender, e);
650 else if (e.KeyChar == '-')
651 buttonSubtract_Click(sender, e);
652 else if (e.KeyChar == '*')
653 buttonMultiply_Click(sender, e);
654 else if (e.KeyChar == '/')
655 buttonDivide_Click(sender, e);
656 else if (e.KeyChar == '=')
657 buttonEqual_Click(sender, e);
658
659 else if (e.KeyChar == 'c')
660 buttonClear_Click(sender, e);
661 else if (e.KeyChar == '.')
662 buttonDot_Click(sender, e);
663
664 else if (e.KeyChar == 8) //或者 (e.KeyChar == '\b') 或者 (e.KeyChar == (char)Keys.Back)
665 buttonBackSpace_Click(sender, e);
666
667 //让光标落在编辑框textBoxResult的最后面
668 textBoxResult.Select(textBoxResult.Text.Length, 0);
669 }
670
671
672
673
674
675 private void radioButtonOctal_CheckedChanged(object sender, EventArgs e)
676 {
677
678 }
679
680 private void Form1_Load(object sender, EventArgs e)
681 {
682
683 }
684
685 private void radioButtonDecimal_CheckedChanged(object sender, EventArgs e)
686 {
687
688 }
689
690 private void radioButtonBinary_CheckedChanged(object sender, EventArgs e)
691 {
692
693 //进行进制转换
694 if (textBoxResult.Text != "")
695 {
696 if (_NumberSystem == "dec")
697 textBoxResult.Text = DecToBin((int)Math.Round(Convert.ToDecimal(textBoxResult.Text)));
698 else if (_NumberSystem == "oct")
699 {
700 int dec = OctToDec(textBoxResult.Text);
701 textBoxResult.Text = DecToBin(dec);
702 }
703 }
704
705 //启用或禁用有关按钮
706 buttonNum2.Enabled = false;
707 buttonNum3.Enabled = false;
708 buttonNum4.Enabled = false;
709 buttonNum5.Enabled = false;
710 buttonNum6.Enabled = false;
711 buttonNum7.Enabled = false;
712 buttonNum8.Enabled = false;
713 buttonNum9.Enabled = false;
714 buttonDot.Enabled = false;
715
716 //保存进制标志
717 _NumberSystem = "bin";
718 }
719
720 private void radioButtonDecimal_Click(object sender, EventArgs e)
721 {
722 //进行进制转换
723 if (textBoxResult.Text != "")
724 {
725 if (_NumberSystem == "bin")
726 textBoxResult.Text = BinToDec(textBoxResult.Text).ToString();
727 else if (_NumberSystem == "oct")
728 textBoxResult.Text = OctToDec(textBoxResult.Text).ToString();
729 }
730
731 //启用或禁用有关按钮
732 buttonNum2.Enabled = true;
733 buttonNum3.Enabled = true;
734 buttonNum4.Enabled = true;
735 buttonNum5.Enabled = true;
736 buttonNum6.Enabled = true;
737 buttonNum7.Enabled = true;
738 buttonNum8.Enabled = true;
739 buttonNum9.Enabled = true;
740 buttonDot.Enabled = true;
741
742 //保存进制标志
743 _NumberSystem = "dec";
744 }
745
746 private void radioButtonOctal_Click(object sender, EventArgs e)
747 {
748 //进行进制转换
749 if (textBoxResult.Text != "")
750 {
751 if (_NumberSystem == "dec")
752 textBoxResult.Text = DecToOct((int)Math.Round(Convert.ToDecimal(textBoxResult.Text)));
753 else if (_NumberSystem == "bin")
754 {
755 int dec = BinToDec(textBoxResult.Text);
756 textBoxResult.Text = DecToOct(dec);
757 }
758 }
759
760 //启用或禁用有关按钮
761 buttonNum2.Enabled = true;
762 buttonNum3.Enabled = true;
763 buttonNum4.Enabled = true;
764 buttonNum5.Enabled = true;
765 buttonNum6.Enabled = true;
766 buttonNum7.Enabled = true;
767 buttonNum8.Enabled = false;
768 buttonNum9.Enabled = false;
769 buttonDot.Enabled = false;
770
771 //保存进制标志
772 _NumberSystem = "oct";
773 }
774
775
776 }
777 }