用C#写Windows窗体的计算器
时间: 2024-05-03 14:17:56 浏览: 16
以下是用C#编写Windows窗体的计算器的示例代码:
```csharp
using System;
using System.Windows.Forms;
namespace CalculatorApp
{
public partial class CalculatorForm : Form
{
private double _number1, _number2, _result;
private string _operation;
public CalculatorForm()
{
InitializeComponent();
}
private void NumberButton_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
if (textBoxResult.Text == "0")
{
textBoxResult.Clear();
}
textBoxResult.Text += button.Text;
}
private void OperationButton_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
_number1 = double.Parse(textBoxResult.Text);
_operation = button.Text;
textBoxResult.Clear();
}
private void EqualsButton_Click(object sender, EventArgs e)
{
_number2 = double.Parse(textBoxResult.Text);
switch (_operation)
{
case "+":
_result = _number1 + _number2;
break;
case "-":
_result = _number1 - _number2;
break;
case "*":
_result = _number1 * _number2;
break;
case "/":
_result = _number1 / _number2;
break;
}
textBoxResult.Text = _result.ToString();
}
private void ClearButton_Click(object sender, EventArgs e)
{
textBoxResult.Text = "0";
}
private void CalculatorForm_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.D0:
case Keys.NumPad0:
NumberButton_Click(button0, EventArgs.Empty);
break;
case Keys.D1:
case Keys.NumPad1:
NumberButton_Click(button1, EventArgs.Empty);
break;
case Keys.D2:
case Keys.NumPad2:
NumberButton_Click(button2, EventArgs.Empty);
break;
case Keys.D3:
case Keys.NumPad3:
NumberButton_Click(button3, EventArgs.Empty);
break;
case Keys.D4:
case Keys.NumPad4:
NumberButton_Click(button4, EventArgs.Empty);
break;
case Keys.D5:
case Keys.NumPad5:
NumberButton_Click(button5, EventArgs.Empty);
break;
case Keys.D6:
case Keys.NumPad6:
NumberButton_Click(button6, EventArgs.Empty);
break;
case Keys.D7:
case Keys.NumPad7:
NumberButton_Click(button7, EventArgs.Empty);
break;
case Keys.D8:
case Keys.NumPad8:
NumberButton_Click(button8, EventArgs.Empty);
break;
case Keys.D9:
case Keys.NumPad9:
NumberButton_Click(button9, EventArgs.Empty);
break;
case Keys.Add:
OperationButton_Click(buttonAdd, EventArgs.Empty);
break;
case Keys.Subtract:
OperationButton_Click(buttonSubtract, EventArgs.Empty);
break;
case Keys.Multiply:
OperationButton_Click(buttonMultiply, EventArgs.Empty);
break;
case Keys.Divide:
OperationButton_Click(buttonDivide, EventArgs.Empty);
break;
case Keys.Enter:
EqualsButton_Click(buttonEquals, EventArgs.Empty);
break;
case Keys.Escape:
ClearButton_Click(buttonClear, EventArgs.Empty);
break;
}
}
}
}
```
上述代码定义了一个名为`CalculatorForm`的窗体类,该类包含操作数、运算符和结果等私有字段。在窗体加载时,通过调用`InitializeComponent()`方法创建窗体上的控件,并在需要时注册事件处理程序。
在`NumberButton_Click`方法中,单击数字按钮时将数字添加到文本框中。 在`OperationButton_Click`方法中,单击运算符按钮时,将当前文本框中的值保存为第一个操作数,将当前运算符保存,清除文本框以准备输入第二个操作数。 在`EqualsButton_Click`方法中,单击等号按钮时,将当前文本框中的值保存为第二个操作数,并根据所选的运算符执行计算。 最后,将结果显示在文本框中。
此外,该代码还包括对键盘按键的响应,可以使用数字键、运算符键、等号键和清除键来操作计算器。
这只是一个基本的示例,您可以根据需要添加额外的功能或修改其外观。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)