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 == '') 或者 (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 }