首先在窗体中托出TextBox文本框供用户输入。
然后在窗体中用Button控件托出数字键和加减乘除运算符,删除和等于。如图:
托出控件后右键点属性更改 Button按钮的Text属性,改成对应的数字和符号
然后双击控件进入到代码页面开始写代码:
首先定义两个变量,一个是浮点数,用来存储用户第一次输入的内容
第二个用来记录用户点击控件后对应的运算符
float temp1 = -1f;
int pos = 0;
封装一个方法用来绑定用户点击的数字
private void xianShi(int num)
{
textBox1.Text += num;
}
然后分别对数字进行代码绑定,传入对应的数字
private void one_Click(object sender, EventArgs e)
{
xianShi(1);
}
private void two_Click(object sender, EventArgs e)
{
xianShi(2);
}
private void three_Click(object sender, EventArgs e)
{
xianShi(3);
}
private void four_Click(object sender, EventArgs e)
{
xianShi(4);
}
private void five_Click(object sender, EventArgs e)
{
xianShi(5);
}
private void six_Click(object sender, EventArgs e)
{
xianShi(6);
}
private void seven_Click(object sender, EventArgs e)
{
xianShi(7);
}
private void enght_Click(object sender, EventArgs e)
{
xianShi(8);
}
private void nine_Click(object sender, EventArgs e)
{
xianShi(9);
}
private void zero_Click(object sender, EventArgs e)
{
xianShi(0);
}
对于点 “ . ” 进行判断处理:
如果用户没有输入内容点击 “ . ” 文本框中就显示 “ 0. ” ,否则的话再进行判断一次,如果文本框中没有 “ . ” 就显示 “ . ”
private void dian_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text))
{
textBox1.Text = "0.";
}
else
{
if (!textBox1.Text.Contains("."))
{
textBox1.Text += ".";
}
}
}
对运算符进行处理,首先判断文本框中有没有内容,就是用户有没有输入第一个数字,如果没有的话就返回。
private void jia_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 1;
textBox1.Text = "";
}
private void jian_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 2;
textBox1.Text = "";
}
private void cheng_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 3;
textBox1.Text = "";
}
private void chu_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 4;
textBox1.Text = "";
}
清空,直接把文本框内容,运算符全部清除
private void qingkong_Click(object sender, EventArgs e)
{
textBox1.Text = "";
pos = 0;
temp1 = 0;
}
等于,还是先判断文本框里有没有内容,没有内容就返回,有内容再执行接下来的代码:
private void dengyu_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
float temp2 = Convert.ToSingle(textBox1.Text);
switch (pos)
{
case 1:textBox1.Text = (temp1 + temp2).ToString();
break;
case 2:
textBox1.Text = (temp1 - temp2).ToString();
break;
case 3:
textBox1.Text = (temp1 * temp2).ToString();
break;
case 4:
textBox1.Text = (temp1 / temp2).ToString();
break;
}
}
完整代码如下:
using System;
using System.Windows.Forms;
namespace 简易计算器
{
public partial class Form1 : Form
{
float temp1 = -1f;
int pos = 0;
public Form1()
{
InitializeComponent();
}
private void xianShi(int num)
{
textBox1.Text += num;
}
private void one_Click(object sender, EventArgs e)
{
xianShi(1);
}
private void two_Click(object sender, EventArgs e)
{
xianShi(2);
}
private void three_Click(object sender, EventArgs e)
{
xianShi(3);
}
private void four_Click(object sender, EventArgs e)
{
xianShi(4);
}
private void five_Click(object sender, EventArgs e)
{
xianShi(5);
}
private void six_Click(object sender, EventArgs e)
{
xianShi(6);
}
private void seven_Click(object sender, EventArgs e)
{
xianShi(7);
}
private void enght_Click(object sender, EventArgs e)
{
xianShi(8);
}
private void nine_Click(object sender, EventArgs e)
{
xianShi(9);
}
private void zero_Click(object sender, EventArgs e)
{
xianShi(0);
}
private void dian_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text))
{
textBox1.Text = "0.";
}
else
{
if (!textBox1.Text.Contains("."))
{
textBox1.Text += ".";
}
}
}
private void jia_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 1;
textBox1.Text = "";
}
private void jian_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 2;
textBox1.Text = "";
}
private void cheng_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 3;
textBox1.Text = "";
}
private void chu_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
temp1 = Convert.ToSingle(textBox1.Text);
pos = 4;
textBox1.Text = "";
}
private void qingkong_Click(object sender, EventArgs e)
{
textBox1.Text = "";
pos = 0;
temp1 = 0;
}
private void dengyu_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text)) return;
float temp2 = Convert.ToSingle(textBox1.Text);
switch (pos)
{
case 1:textBox1.Text = (temp1 + temp2).ToString();
break;
case 2:
textBox1.Text = (temp1 - temp2).ToString();
break;
case 3:
textBox1.Text = (temp1 * temp2).ToString();
break;
case 4:
textBox1.Text = (temp1 / temp2).ToString();
break;
}
}
}
}