当前位置:网站首页>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)
边栏推荐
猜你喜欢
随机推荐
1. Development community homepage, register
软件测试基础知识(背)
mysql的索引结构为什么选用B+树?
第二十九章:树的基本概念和性质
Problems related to prime numbers - small notes
关于推荐系统的随想
剑指offer:删除链表中重复的节点
Use libcurl to upload the image of Opencv Mat to the file server, based on two methods of post request and ftp protocol
6.统一记录日志
Golang 垃圾回收机制详解
STM32LL库使用——SPI通信
动态规划理论篇
How to simulate 1/3 probability with coins, and arbitrary probability?
企业的电子签名、私钥签名
Installation and configuration of Spark and related ecological components - quick recall
第三十章:普通树的存储和遍历
unity Domain Reload & scene Reload 静态变量重置
[System Design and Implementation] Flink-based distracted driving prediction and data analysis system
The SSE instructions into ARM NEON
Unity-存档与读档









