效果图:
    image.png
    演示:
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

    image.png
    image.png
    image.png**

    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.Threading.Tasks;
    9. using System.Windows.Forms;
    10. namespace calculator
    11. {
    12. public partial class CalculatorForm : Form
    13. {
    14. public CalculatorForm()
    15. {
    16. InitializeComponent();
    17. }
    18. private void btn1_Click(object sender, EventArgs e)
    19. {
    20. Button btn = (Button)sender;
    21. txtResult.Text += btn.Text;
    22. }
    23. private void btn2_Click(object sender, EventArgs e)
    24. {
    25. Button btn = (Button)sender;
    26. txtResult.Text += btn.Text;
    27. }
    28. private void btn3_Click(object sender, EventArgs e)
    29. {
    30. Button btn = (Button)sender;
    31. txtResult.Text += btn.Text;
    32. }
    33. private void btn4_Click(object sender, EventArgs e)
    34. {
    35. Button btn = (Button)sender;
    36. txtResult.Text += btn.Text;
    37. }
    38. private void btn5_Click(object sender, EventArgs e)
    39. {
    40. Button btn = (Button)sender;
    41. txtResult.Text += btn.Text;
    42. }
    43. private void btn6_Click(object sender, EventArgs e)
    44. {
    45. Button btn = (Button)sender;
    46. txtResult.Text += btn.Text;
    47. }
    48. private void btn7_Click(object sender, EventArgs e)
    49. {
    50. Button btn = (Button)sender;
    51. txtResult.Text += btn.Text;
    52. }
    53. private void btn8_Click(object sender, EventArgs e)
    54. {
    55. Button btn = (Button)sender;
    56. txtResult.Text += btn.Text;
    57. }
    58. private void btn9_Click(object sender, EventArgs e)
    59. {
    60. Button btn = (Button)sender;
    61. txtResult.Text += btn.Text;
    62. }
    63. private void btn0_Click(object sender, EventArgs e)
    64. {
    65. Button btn = (Button)sender;
    66. txtResult.Text += btn.Text;
    67. }
    68. private void btnAdd_Click(object sender, EventArgs e)
    69. {
    70. Button btn = (Button)sender;
    71. txtResult.Text = txtResult.Text + " " + btn.Text + " ";
    72. }
    73. private void btnSub_Click(object sender, EventArgs e)
    74. {
    75. Button btn = (Button)sender;
    76. txtResult.Text = txtResult.Text + " " + btn.Text + " ";
    77. }
    78. private void btnMul_Click(object sender, EventArgs e)
    79. {
    80. Button btn = (Button)sender;
    81. txtResult.Text = txtResult.Text + " " + btn.Text + " ";
    82. }
    83. private void btnDiv_Click(object sender, EventArgs e)
    84. {
    85. Button btn = (Button)sender;
    86. txtResult.Text = txtResult.Text + " " + btn.Text + " ";
    87. }
    88. private void btnClear_Click(object sender, EventArgs e)
    89. {
    90. txtResult.Text = "";
    91. }
    92. private void btnCalculate_Click(object sender, EventArgs e)
    93. {
    94. Single r;
    95. string t = txtResult.Text;
    96. int space = t.IndexOf(' ');
    97. string s1 = t.Substring(0, space);
    98. char op = Convert.ToChar(t.Substring(space + 1, 1));
    99. string s2 = t.Substring(space + 3);
    100. Single arg1 = Convert.ToSingle(s1);
    101. Single arg2 = Convert.ToSingle(s2);
    102. switch (op)
    103. {
    104. case '+':
    105. r = arg1 + arg2;
    106. break;
    107. case '-':
    108. r = arg1 - arg2;
    109. break;
    110. case '*':
    111. r = arg1 * arg2;
    112. break;
    113. case '/':
    114. if (arg2 == 0)
    115. {
    116. throw new ApplicationException();
    117. }
    118. else
    119. {
    120. r = arg1 / arg2;
    121. break;
    122. }
    123. //break;
    124. default:
    125. throw new ApplicationException();
    126. }
    127. txtResult.Text = r.ToString();
    128. }
    129. }
    130. }