如何在VS中使用Windows窗体应用编写一个计算器?
Windows窗体应用使用的编程语言主要是微软自家的C#开发语言,不管学习任何语言,通过编写一些小项目,对于语言的理解和运用是很有帮助的;
而计算器就是一个很好的小项目,我之前用过C++来编写计算器,但是相比C#来说,C++要麻烦的多,要设计文法,还要设计文法,考虑容错,不想WinForm窗体那样来的简单粗暴;
1. 首先,通过拖拽控件设计好布局;
这里我主要使用了一个Textbox控件,和十九个Button控件,摆好控件后就把Button控件的text属性设置好;
2. 然后开始编写后台的代码逻辑的实现部分;
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 Calculater
{
public partial class Form1 : Form
{
double a = 0;
double b = 0;
bool c = false;
string d;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//button 0
private void button2_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "0";
if (d == "/")
{
textBox1.Clear();
MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void button5_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "1";
}
private void button6_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "2";
}
private void button7_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "3";
}
private void button9_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "4";
}
private void button10_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "5";
}
private void button11_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "6";
}
private void button13_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "7";
}
private void button14_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "8";
}
private void button15_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += "9";
}
private void button1_Click(object sender, EventArgs e)
{
if (c == true)
{
textBox1.Text = "";
c = false;
}
textBox1.Text += ".";
}
private void button4_Click(object sender, EventArgs e)
{
c = true;
b = double.Parse(textBox1.Text);
d = "+";
}
private void button8_Click(object sender, EventArgs e)
{
c = true;
b = double.Parse(textBox1.Text);
d = "-";
}
private void button12_Click(object sender, EventArgs e)
{
c = true;
b = double.Parse(textBox1.Text);
d = "*";
}
private void button16_Click(object sender, EventArgs e)
{
c = true;
b = double.Parse(textBox1.Text);
d = "/";
}
private void button21_Click(object sender, EventArgs e)
{
c = true;
b = double.Parse(textBox1.Text);
d = "x2";
}
private void button20_Click(object sender, EventArgs e)
{
c = true;
b = double.Parse(textBox1.Text);
d = "sqrt";
}
private void button3_Click(object sender, EventArgs e)
{
switch (d)
{
case "+":
a = b + double.Parse(textBox1.Text);
break;
case "-":
a = b - double.Parse(textBox1.Text);
break;
case "*":
a = b * double.Parse(textBox1.Text);
break;
case "/":
a = b / double.Parse(textBox1.Text);
break;
case "x2":
a = b * double.Parse(textBox1.Text);
break;
case "sqrt":
a = Math.Sqrt(b);
break;
}
textBox1.Text = a + "";
c = true;
}
private void button17_Click(object sender, EventArgs e)
{
textBox1.Text = "";
}
}
}
注意:我这里的控件名跟你的可能不一致!
如有错误,请指正,谢谢。