按钮1-9是Button1 - Button9
0 . = 是Button-Button12
+ - * / 是Button13 -Button16
AC 和 <- 是Button17和Button18
TextBox1的Readonly为True
下面是全部代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics.Eventing.Reader;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 计算器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
textBox1.Text = "0"; //初始化textBox1的文本等于0
}
public double jieguo = 0;
public int jisuan = 0;
public void claer()
{
//当textBox1的文本等于计算结果或者初始化的0时清空它的文本
if (textBox1.Text == jieguo.ToString() || textBox1.Text == "0")
{
textBox1.Text = "";
}
}
private void button1_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button1.Text}";
}
private void button2_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button2.Text}";
}
private void button3_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button3.Text}";
}
private void button4_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button4.Text}";
}
private void button5_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button5.Text}";
}
private void button6_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button6.Text}";
}
private void button7_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button7.Text}";
}
private void button8_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button8.Text}";
}
private void button9_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button9.Text}";
}
private void button10_Click(object sender, EventArgs e)
{
claer();
textBox1.Text += $"{button10.Text}";
}
private void button11_Click(object sender, EventArgs e)
{
textBox1.Text += $"{button11.Text}";
}
//按下=的方法
public void dengyu()
{
//用字符串分割方法进行逻辑处理
char[] yunsuanfu = { '+', '-', '*', '/' };
//当textBox1.text中遇到上面的字符将进行分割处理
string[] str1 = textBox1.Text.Split(yunsuanfu, StringSplitOptions.RemoveEmptyEntries);
//在外面定义一个变量哪个运算符按下这个变量就等于几,来判断运算符是什么
if (jisuan == 13)
{
jieguo = Convert.ToDouble(str1[0]) + Convert.ToDouble(str1[1]);
}
if (jisuan == 14)
{
jieguo = Convert.ToDouble(str1[0]) - Convert.ToDouble(str1[1]);
}
if (jisuan == 15)
{
jieguo = Convert.ToDouble(str1[0]) * Convert.ToDouble(str1[1]);
}
if (jisuan == 16)
{
jieguo = Convert.ToDouble(str1[0]) / Convert.ToDouble(str1[1]);
}
textBox1.Text = jieguo.ToString();
jisuan = 0;
}
//=按钮
private void button12_Click(object sender, EventArgs e)
{
dengyu();
}
//+
private void button13_Click(object sender, EventArgs e)
{
char[] yunsuanfu = { '+', '-', '*', '/' };
string[] str1 = textBox1.Text.Split(yunsuanfu, StringSplitOptions.RemoveEmptyEntries);
//判断输入的数字是否超过2个,如果超过两个则执行一下=代码这里是为了让计算器每计算两个数再按下运算符按钮textBox1文本就变成结果的值,方便下次计算
if (str1.Length >= 2)
{
dengyu();
}
textBox1.Text += $"{button13.Text}";
jisuan = 13;
}
private void button14_Click(object sender, EventArgs e)
{
char[] yunsuanfu = { '+', '-', '*', '/' };
string[] str1 = textBox1.Text.Split(yunsuanfu, StringSplitOptions.RemoveEmptyEntries);
if (str1.Length >= 2)
{
dengyu();
}
textBox1.Text += $"{button14.Text}";
jisuan = 14;
}
private void button15_Click(object sender, EventArgs e)
{
char[] yunsuanfu = { '+', '-', '*', '/' };
string[] str1 = textBox1.Text.Split(yunsuanfu, StringSplitOptions.RemoveEmptyEntries);
if (str1.Length >= 2)
{
dengyu();
}
textBox1.Text += $"{button15.Text}";
jisuan = 15;
}
private void button16_Click(object sender, EventArgs e)
{
char[] yunsuanfu = { '+', '-', '*', '/' };
string[] str1 = textBox1.Text.Split(yunsuanfu, StringSplitOptions.RemoveEmptyEntries);
if (str1.Length >= 2)
{
dengyu();
}
textBox1.Text += $"{button16.Text}";
jisuan = 16;
}
//归零键,按下textBox1的文本就归零了
private void button17_Click(object sender, EventArgs e)
{
textBox1.Text = "0";
}
//退格键
private void button18_Click(object sender, EventArgs e)
{
//如果textBOx1的文本长度等于1那么就直接让它归零,大于1的话让它退格1个字符
if (textBox1.Text.Length == 1)
{
textBox1.Text = "0";
}
if (textBox1.Text.Length > 1)
{
textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
}
}
}
}