using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 计算器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
double s;//计算结果
double m;//第一个数
double n;//第二个
string d;//退格后的数
public void resetUi()
{
if (textBox2.Text == "=")
{
setUi("0", "");// textBox1返回0;textBox2返回空
}
}
#region 定义数字键
private void button1_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "1";
}
else
{
textBox1.Text = textBox1.Text + "1";
}
}
private void button2_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "2";
}
else
{
textBox1.Text = textBox1.Text + "2";
}
}
private void button3_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "3";
}
else
{
textBox1.Text = textBox1.Text + "3";
}
}
private void button4_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "4";
}
else
{
textBox1.Text = textBox1.Text + "4";
}
}
private void button5_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "5";
}
else
{
textBox1.Text = textBox1.Text + "5";
}
}
private void button6_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "6";
}
else
{
textBox1.Text = textBox1.Text + "6";
}
}
private void button7_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "7";
}
else
{
textBox1.Text = textBox1.Text + "7";
}
}
private void button8_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "8";
}
else
{
textBox1.Text = textBox1.Text + "8";
}
}
private void button9_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "9";
}
else
{
textBox1.Text = textBox1.Text + "9";
}
}
private void button10_Click(object sender, EventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "0";
}
else
{
textBox1.Text = textBox1.Text + "0";
}
}
#endregion
#region 加减乘除
private void button13_Click(object sender, EventArgs e)//加
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "+");
}
private void button14_Click(object sender, EventArgs e)//减
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "-");
}
private void button15_Click(object sender, EventArgs e)//乘
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "*");
}
private void button16_Click(object sender, EventArgs e)//除
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "/");
}
#endregion
private void button19_Click(object sender, EventArgs e)//等
{
resetUi();
n = Convert.ToDouble(textBox1.Text);
switch (textBox2.Text)
{
case "+": s = m + n; break;
case "-": s = m - n; break;
case "*": s = m * n; break;
case "/": s = m / n; break;
}
if (Double.IsInfinity(s))//IsInfinity返回正无穷大或副无穷大
{
setUi("除数不能为0!", "/");
return;
}
setUi(s.ToString(), "=");
}
public void setUi(string txt1, string txt2)
{
textBox1.Text = txt1;
textBox2.Text = txt2;
}
private void button17_Click(object sender, EventArgs e)//清零
{
setUi("0", "");
}
private void button18_Click(object sender, EventArgs e)//退格
{
d = textBox1.Text;
if (d.Length == 0)
{
return;
}
else
{
d = d.Remove(d.Length - 1);
textBox1.Text = d;
}
}
private void button11_Click(object sender, EventArgs e)//正负
{
double f = 0;
if (Convert.ToDouble(textBox1.Text) > 0)
{
f -= Convert.ToDouble(textBox1.Text);
textBox1.Text = Convert.ToString(f);
}
else if (Convert.ToDouble(textBox1.Text) < 0)
{
f -= Convert.ToDouble(textBox1.Text);
textBox1.Text = Convert.ToString(f);
}
else
{
return;
}
}
private void button12_Click(object sender, EventArgs e)//点
{
if (!textBox1.Text.Contains("."))//contains包含
{
setUi(textBox1.Text+".", textBox2.Text);
}
else
{
return;
}
}
private void Form1_Load(object sender, EventArgs e)
{
setUi("0", textBox2.Text);
}
private void button20_Click(object sender, EventArgs e)//根
{
m = Convert.ToDouble(textBox1.Text);
s = Math.Sqrt(m);
if (Double.IsNaN(s))
{
// MessageBox.Show("负数无法开根号", "负数无法开根号");
textBox1.Text = "负数无法开根号!";
return;
}
setUi(s.ToString(), "√");
}
private void button21_Click(object sender, EventArgs e)//平方
{
m = Convert.ToDouble(textBox1.Text);
setUi(Math.Pow(m, 2).ToString(), "x²");
}
private void button22_Click(object sender, EventArgs e)//退出
{
Application.Exit();
}
private void button1_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "1";
}
else
{
textBox1.Text = textBox1.Text + "1";
}
}
private void button2_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "2";
}
else
{
textBox1.Text = textBox1.Text + "2";
}
}
private void button3_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "3";
}
else
{
textBox1.Text = textBox1.Text + "3";
}
}
private void button4_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "4";
}
else
{
textBox1.Text = textBox1.Text + "4";
}
}
private void button5_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "5";
}
else
{
textBox1.Text = textBox1.Text + "5";
}
}
private void button6_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "6";
}
else
{
textBox1.Text = textBox1.Text + "6";
}
}
private void button7_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "7";
}
else
{
textBox1.Text = textBox1.Text + "7";
}
}
private void button8_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "8";
}
else
{
textBox1.Text = textBox1.Text + "8";
}
}
private void button9_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "9";
}
else
{
textBox1.Text = textBox1.Text + "9";
}
}
private void button10_KeyDown(object sender, KeyEventArgs e)
{
resetUi();
if (textBox1.Text == "0")
{
textBox1.Text = "0";
}
else
{
textBox1.Text = textBox1.Text + "0";
}
}
private void button11_KeyDown(object sender, KeyEventArgs e)
{
double f = 0;
if (Convert.ToDouble(textBox1.Text) > 0)
{
f -= Convert.ToDouble(textBox1.Text);
textBox1.Text = Convert.ToString(f);
}
else if (Convert.ToDouble(textBox1.Text) < 0)
{
f -= Convert.ToDouble(textBox1.Text);
textBox1.Text = Convert.ToString(f);
}
else
{
return;
}
}
private void button12_KeyDown(object sender, KeyEventArgs e)
{
if (!textBox1.Text.Contains("."))//contains包含
{
setUi(textBox1.Text + ".", textBox2.Text);
}
else
{
return;
}
}
private void button13_KeyDown(object sender, KeyEventArgs e)
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "+");
}
private void button14_KeyDown(object sender, KeyEventArgs e)
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "-");
}
private void button15_KeyDown(object sender, KeyEventArgs e)
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "*");
}
private void button16_KeyDown(object sender, KeyEventArgs e)
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "/");
}
private void button19_KeyDown(object sender, KeyEventArgs e)
{
m = Convert.ToDouble(textBox1.Text);
setUi("", "=");
}
}
}