namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
//存储上次点击了什么按钮,0代表什么都没有点击,1代表数字按钮,2代表点击了运算符
private int prev = ;
//存储计算的中间结果
private decimal zjjg = ;
//记录上次按得什么运算符
private string prevysf = "+"; public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e) //输入的数
{
//将事件源转换为按钮
Button btn = sender as Button;
//替换(文本框内容为0,点击了运算符)
if (prev == || txtbottom.Text == "")
{
txtbottom.Text = btn.Text;
}
//追加(内容不为0,并且上次没有点击运算符)
else
{
txtbottom.Text += btn.Text;
}
//点击了按钮数字
prev = ;
} private void button4_Click(object sender, EventArgs e) //加减乘除
{
//事件源转换为按钮
Button btn = sender as Button;
//上次按了数字
if (prev == )
{
txttop.Text += txtbottom.Text + btn.Text;//进行显示拼接
switch (prevysf)
{
case "+":
zjjg = zjjg + Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "-":
zjjg = zjjg - Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "*":
zjjg = zjjg * Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "/":
zjjg = zjjg / Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
} txtbottom.Text = zjjg.ToString();
}
//上次按了运算符
else
{ if (txttop.Text != "")
{
string s = txttop.Text;
s = s.Substring(, s.Length - );
s = s + btn.Text;
txttop.Text = s;
}
else
{ txttop.Text = txtbottom.Text + btn.Text;
}
}
//点击了运算符
prev = ;
//记录下运算符
prevysf = btn.Text;
} private void button9_Click(object sender, EventArgs e) //清空
{
txttop.Text = "";
txtbottom.Text = "";
prevysf = "+";
prev = ;
zjjg = ;
} private void button11_Click(object sender, EventArgs e) //等于
{
//事件源转换为按钮
Button btn = sender as Button;
switch (prevysf)
{
case "+":
zjjg = zjjg + Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "-":
zjjg = zjjg - Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "*":
zjjg = zjjg * Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "/":
zjjg = zjjg / Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
}
txtbottom.Text = zjjg.ToString();
txttop.Text = "";
prevysf = "";
prev = ;
} private void button17_Click(object sender, EventArgs e) //回退一个
{
string s = txtbottom.Text;
if (s.Length >)
{
s = s.Substring(, s.Length - );
txtbottom.Text = s;
}
else if(s.Length==)
{
txtbottom.Text = "";
}
} private void Form1_Load(object sender, EventArgs e)
{ }
}
}

WinForm 制作一个简单的计算器的更多相关文章

  1. C#-用Winform制作一个简单的密码管理工具

    为什么要做? 首先是为了练习一下c#. 想必大家都有过记不起某个平台的账号密码的经历,那种感受着实令人抓狂.那这么多账号密码根本记不住!我之前用python写过一个超级简单(连账号信息都写在代码里那种 ...

  2. 使用qt制作一个简单的计算器

    前言:今天使用qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下. 这里先跟大家说说使用到的函数: 一.槽连接函数 connect(信号发送者,发送的信号,信号接收者,信号接收者的 ...

  3. JS实现一个简单的计算器

    使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除.效果如上: 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择 ...

  4. 实例学习SSIS(一)--制作一个简单的ETL包

    原文:实例学习SSIS(一)--制作一个简单的ETL包 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SS ...

  5. TensorFlow练习13: 制作一个简单的聊天机器人

    现在很多卖货公司都使用聊天机器人充当客服人员,许多科技巨头也纷纷推出各自的聊天助手,如苹果Siri.Google Now.Amazon Alexa.微软小冰等等.前不久有一个视频比较了Google N ...

  6. Android下实现一个简单的计算器源码

    下面的内容是关于Android下实现一个简单的计算器的内容. import android.app.Activity; import android.os.Bundle;import android. ...

  7. 手把手制作一个简单的IDEA插件(环境搭建Demo篇)

    新建IDEA插件File --> new --> Project--> Intellij PlatForm Plugin-->Next-->填好项目名OK 编写插件新建工 ...

  8. PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例

    前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...

  9. 如何使用AEditor制作一个简单的H5交互页demo

    转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个 ...

随机推荐

  1. arrayList LinkedList HashMap HashTable的区别

    ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦 LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一 ...

  2. windows矢量字体点阵数据的提取(转)

    源:windows矢量字体点阵数据的提取 问题参考:windows api 获取字库点阵的问题 1.提取原理 在windows系统当中提取矢量字体的字模有很多方法,下面介绍一种利用GetGlyphOu ...

  3. SecureCRT上传bash: rz: command not found

    SecureCRT上传bash: rz: command not found -bash: rz: command not found rz命令没找到? 执行sz,同样也没找到.     安装lrzs ...

  4. POJ 2139 Six Degrees of Cowvin Bacon

    水题,Floyd. #include<cstdio> #include<cstring> #include<algorithm> using namespace s ...

  5. HTML学习(六)图像

    图像标签(<img>)和源属性(Src)在 HTML 中,图像由 <img> 标签定义.<img> 是空标签,意思是说,它只包含属性,并且没有闭合标签.要在页面上显 ...

  6. 在阿里云ECS(CentOS6.5)上安装jdk

    JDK安装 在安装前先确定服务器上没有安装过JDK 命令: java -version 结果: 查看所有java安装包 命令: yum -y list java* 结果: 选择安装所需要的JDK 命令 ...

  7. ios数据存储——对象归档

    归档:数据从内存与闪存相互转化,类似“序列化”,将数据转换成二进制字节数据 操作:有两种方式,第一种是单个对象作为root进行归档和恢复,一个对象一个文件:第二种,可以同时归档多个对象到一个文件 注意 ...

  8. 饼干是这样压缩的——PHP使用zlib扩展实现页面GZIP压缩输出

    饼干是这样压缩的——PHP使用zlib扩展实现页面GZIP压缩输出 GZIP(GNU-ZIP)是一种压缩技术.经过GZIP压缩后页面大小可以变为原来的30%甚至更小.这样用户浏览的时候就会感觉很爽很愉 ...

  9. gulp学习指南之CSS合并、压缩与MD5命名及路径替换

    1.引入插件 var gulp = require('gulp'), // uglify = require('gulp-uglify'), concat = require('gulp-concat ...

  10. UVa 336 - A Node Too Far

    题目大意:在计算机网络中,每条信息都有一个TTL值,在信息到达一个节点时,TTL值首先减1,如果TTL为0,则丢弃该信息报文.给一个网络的配置,给定源点和TTL值,判断该网络中有多少节点不可到达. 无 ...