当前位置:网站首页>C#实现简单的计算器
C#实现简单的计算器
2022-08-02 14:12:00 【夏湾】
C#实现简单的计算器
环境:VS2010及以上版本
- 建立个Window窗体应用

- 在工具箱里拖出两个TextBox,第一个放上面,第二个放下面 。主要这里的Name,上面是textBox1,下面是textBox2。这涉及到后面代码的书写

- 在工具栏里拖动Button,摆放好。可利用上面的对齐工具辅助设计。

- 在属性里改变各Button的Text,如下

注意这里的1~9,小数点,±*/ 的Text应只有一个字符,不要多输。← - 选中任意一个Button,右键,选择查看代码,转到Form1.cs

- 开始写代码
- AddNum 修改TextBox的Text,应用于1~9与小数点的Click事件
- Reset 重置temp、myoperator,以及两个TextBox的Text
- Delete 删除textBox2的Text最后一个字符
- Calculate 把textBox2的Text转为double给temp,修改myoperator
- Equal 具体的计算
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//----上面是自动生成的代码,下面得我们手写----
private double temp = 0; //存储临时数据
private char myoperator = ' '; //判断之前按的是+-*/中的哪个
private void AddNum(object sender, EventArgs e)
{ // 1~9与小数点的Click事件
//sender是引发该事件的控件,这里我们拆箱为Button
Button button = (Button)sender;
textBox2.Text += button.Text;
}
private void Reset(object sender, EventArgs e)
{ // CE的Click事件
temp = 0;
myoperator = ' ';
textBox1.Text = textBox2.Text = "";
}
private void Delete(object sender, EventArgs e)
{ // ←的Click事件
//移除最后一个字符
if (textBox2.TextLength > 0)
textBox2.Text = textBox2.Text.Remove(textBox2.TextLength - 1);
}
private void Calculate(object sender, EventArgs e)
{ // +-*/的Click事件
Button button = (Button)sender;
if (double.TryParse(textBox2.Text, out temp)) //尝试把textBox2的Text转为double并赋值给temp
{
myoperator = button.Text[0]; //Text是string,取第一个字符
textBox1.Text = temp.ToString() + ' ' + myoperator;
textBox2.Text = "";
}
else
{ //转换失败,重置所有
Reset(sender, e);
}
}
private void Equal(object sender, EventArgs e)
{ // = 的Click事件,计算并显示
double temp2;
//尝试转换,失败则重置并返回
if (!double.TryParse(textBox2.Text, out temp2)) { Reset(sender, e); return; }
switch (myoperator)
{
case '+':
temp += temp2;
break;
case '-':
temp -= temp2;
break;
case '*':
temp *= temp2;
break;
case '/':
temp /= temp2;
break;
default:
break;
}
textBox1.Text = "";
textBox2.Text = temp.ToString();
}
}
}
- 设置各Button的Click事件
- AddNum: 1~9与小数点的Click事件
- Reset:CE的Click事件
- Delete:←的Click事件
- Calculate :±*/的Click事件
- Equal:= 的Click事件

- 启动(F5)
边栏推荐
- 快速排序
- The SSE instructions into ARM NEON
- 软件测试基础知识(背)
- pygame图像连续旋转
- What should I do if Windows 10 cannot connect to the printer?Solutions for not using the printer
- Codeforces Round #624 (Div. 3)
- 5.事务管理
- MATLAB drawing command fimplicit detailed introduction to drawing implicit function graphics
- 倍增和稀疏表
- Mysql之MVCC
猜你喜欢
随机推荐
Flink + sklearn - use JPMML implement flink deployment on machine learning model
倍增和稀疏表
Compilation error D8021: Invalid numeric argument '/Wextra' cl command line error d8021 invalid numeric argument '/Wextra'
What are IPV4 and IPV6?
pygame image rotate continuously
LeetCode 2353. 设计食物评分系统 维护哈希表+set
5.事务管理
Yolov5 official code reading - prior to transmission
面试汇总
[System Design and Implementation] Flink-based distracted driving prediction and data analysis system
Mysql的锁
Mysql之MVCC
TCP三次握手、四次挥手
TypeScript
Codeforces Round #624 (Div. 3)
Software Testing Basics (Back)
Unity Line-Renderer
Cmd Markdown 公式指导手册
MATLAB绘图函数ezplot入门详解
What should I do if Windows 10 cannot connect to the printer?Solutions for not using the printer








