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. Hibernate-----关系映射 重点!!!

    1. 关系, 指的是对象之间的关系, 并不是数据库之间的关系. 2. 简化问题: a) 怎么写annotation b) 增删改查CRUD怎么写 对象处于下列关系之一 (一对一, 一对多, 多对多)时 ...

  2. SpringMVC轻松学习-环境搭建(二)

    基于spring2.5的采用XML配置的spring MVC项目 注:本项目全部基于XML配置.同时,集成了hibernate.采用的是:spring MVC+hibernate+spring的开发架 ...

  3. sqlserver存储过程中,set rowcount 0是什么意思?

    一般在语句中使用set rowcount是为了使后续的查询.更新.删除操作只影响指定的行数比如 一起执行如下语句 set rowcount 1SELECT * FROM sysobjects结果只返回 ...

  4. [iOS Animation]-CALayer 图层几何学

    图层几何学 不熟悉几何学的人就不要来这里了 --柏拉图学院入口的签名 在第二章里面,我们介绍了图层背后的图片,和一些控制图层坐标和旋转的属性.在这一章中,我们将要看一看图层内部是如何根据父图层和兄弟图 ...

  5. Spring AOP进行日志记录,管理

    在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个 ...

  6. 【转】15款Java程序员必备的开发工具

    如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它. 对于Java,有两种截然不同的观点:一种认为Java是最简单功能 ...

  7. Java的内存泄漏

    内存泄漏是指,无用对象(不再使用的对象)持续占用内存或者无用对象的内存得不到及时释放,从而造成的内存浪费 就说是有一块内存你不需要再用了,但是呢你还保留着它的指针,那么这块内存就不会被回收 举个例子 ...

  8. 网络请求工具--AFNetworking 分类: ios技术 2015-02-03 08:17 76人阅读 评论(0) 收藏

    在我们开发过程中,网络请求是必不可少的,对于网络框架,现在主流的大概只有三类:ASI框架: HTTP终结者(已经停止更新了),MKNetworkKit ,AFN.今天我就来浅谈一下这个AFN AFNe ...

  9. 关于《master opencv with practical computer vision projects》的源代码

    很多读者都在向我要<master opencv with practical computer vision projects>的源代码,现向读者公布,具体源代码地址如下: https:/ ...

  10. javascript-函数及兼容

    1.事件绑定,删除,传播,默认方式,获取类型的兼容 var eventList = { //添加事件兼容 addEvent:function (event,type,backevent) { if ( ...