当前位置:网站首页>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
2.登录退出,登录状态检查,验证码
MATLAB drawing command fimplicit detailed introduction to drawing implicit function graphics
Exotic curiosity-a solution looking - bit operations
mysql的索引结构为什么选用B+树?
二叉树遍历之后序遍历(非递归、递归)入门详解
STM32LL library use - SPI communication
MATLAB绘图函数plot详解
STM32LL库——USART中断接收不定长信息
随机推荐
第二十六章:二维数组
Unity插件-FairyGUI
Happy, 9/28 scene collection
Lightweight AlphaPose
pygame绘制弧线
模板系列-二分
pygame draw arc
二叉排序树与 set、map
Codeforces Round #624 (Div. 3)
4.发布帖子,评论帖子
MATLAB绘制平面填充图入门详解
2. Log out, log in state examination, verification code
Unity-编辑器扩展(Editor)
深入理解Mysql索引底层数据结构与算法
利用plot_surface命令绘制复杂曲面入门详解
Mysql的锁
总结计算机网络超全面试题
Redis的线程模型
C语言函数参数传递模式入门详解
lua编程