winform 计算器

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 计算器1
{
public partial class Form1 : Form
{
//存储上次点击了什么按钮,0代表什么都没点击,1代表点击了数字按钮,2代表点击了运算符
private int prev = ;
//存储计算的中间结果
private decimal zj = ;
//记录上次按的什么运算符
private string prevysf = "+";
public Form1()
{
InitializeComponent();
}
//数字按钮
private void button15_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 button16_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
//上次按了数字
if (prev == )
{
txttop.Text += txtbottom.Text + btn.Text;
switch (prevysf)
{
case "+":
zj = zj + Convert.ToDecimal(txtbottom.Text);
break;
case "-":
zj = zj - Convert.ToDecimal(txtbottom.Text);
break;
case "*":
zj = zj * Convert.ToDecimal(txtbottom.Text);
break;
case "/":
zj = zj / Convert.ToDecimal(txtbottom.Text);
break;
}
txtbottom.Text = zj.ToString();
}
//上次按了运算符
else
{
string s = txttop.Text;
s = s.Substring(, s.Length - );
s = s + btn.Text;
txttop.Text = s;
}
//点击了运算符
prev = ;
//记录下运算符
prevysf = btn.Text;
}
//清零
private void button1_Click(object sender, EventArgs e)
{
txttop.Text = "";
txtbottom.Text = "";
prev = ;
zj = ;
prevysf = "+";
}
//清零
private void button2_Click(object sender, EventArgs e)
{
txtbottom.Text = "";
}
//等号
private void button20_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
txttop.Text += txtbottom.Text + btn.Text; switch (prevysf)
{
case "+":
zj = zj + Convert.ToDecimal(txtbottom.Text);
break;
case "-":
zj = zj - Convert.ToDecimal(txtbottom.Text);
break;
case "*":
zj = zj * Convert.ToDecimal(txtbottom.Text);
break;
case "/":
zj = zj / Convert.ToDecimal(txtbottom.Text);
break;
} txtbottom.Text = zj.ToString();
txttop.Text = ""; zj = ;
}
//小数点
private void button19_Click(object sender, EventArgs e)
{
if(txtbottom.Text.Contains(".")==false)
txtbottom.Text += ".";
}
//退格
private void button3_Click(object sender, EventArgs e)
{
txtbottom.Text = txtbottom.Text.Substring(,txtbottom.TextLength-);
}
//±号控制
private void button17_Click(object sender, EventArgs e)
{
if(!txtbottom.Text.Contains("-"))
txtbottom.Text= txtbottom.Text.Insert(, "-");
else if (txtbottom.Text.Contains("-"))
txtbottom.Text = txtbottom.Text.Replace("-","");
}
//键盘控制
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// if it is a hotkey, return true; otherwise, return false
switch (keyData)
{
case Keys.NumPad0:
//焦点定位到控件button_num_0上,即数字0键上
button18.Focus();
//执行按钮点击操作
button18.PerformClick();
return true;
case Keys.NumPad1:
button13.Focus();
button13.PerformClick();
return true;
case Keys.NumPad2:
button14.Focus();
button14.PerformClick();
return true;
case Keys.NumPad3:
button15.Focus();
button15.PerformClick();
return true;
case Keys.NumPad4:
button9.Focus();
button9.PerformClick();
return true;
case Keys.NumPad5:
button10.Focus();
button10.PerformClick();
return true;
case Keys.NumPad6:
button11.Focus();
button11.PerformClick();
return true;
case Keys.NumPad7:
button5.Focus();
button5.PerformClick();
return true;
case Keys.NumPad8:
button6.Focus();
button6.PerformClick();
return true;
case Keys.NumPad9:
button7.Focus();
button7.PerformClick();
return true;
case Keys.Back:
button3.Focus();
button3.PerformClick();
return true;
case Keys.Divide:
button4.Focus();
button4.PerformClick();
return true;
case Keys.Multiply:
button8.Focus();
button8.PerformClick();
return true;
case Keys.Subtract:
button12.Focus();
button12.PerformClick();
return true;
case Keys.Add:
button16.Focus();
button16.PerformClick();
return true;
case Keys.Enter:
button20.Focus();
button20.PerformClick();
return true;
case Keys.Delete:
button19.Focus();
button19.PerformClick();
return true;
//......
default:
break;
}
return base.ProcessCmdKey(ref msg, keyData);
} }
}
winform 计算器的更多相关文章
- Winform——计算器
namespace 计算器2._0 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } pr ...
- Winform——计算器进制转换
namespace 进制转换2._0 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } p ...
- [原][C#][winForm]分级基金折溢价WinForm网络计算器
分级基金折溢价WinForm网络计算器 通过子/母基金代码,从 [ 东方财富网,天天基金网,新浪 ] 抓取分级基金的子母基金数据(代码,名称,净值,价格), 并计算出子基金(A基金,B基金)以及母基金 ...
- winform操作windows系统计算器
winform对系统计算器的调用,启动,最大化最小化显示,在mainwindow设置topmost=true时,正常显示计算器并置顶. /// <summary> /// 获取窗体的句柄函 ...
- 1.C#WinForm基础制作简单计算器
利用c#语言编写简单计算器: 核心知识点: MessageBox.Show(Convert.ToString(comboBox1.SelectedIndex));//下拉序号 MessageBox.S ...
- winform(四)——简单计算器制作
效果图: 代码区: using System; using System.Collections.Generic; using System.ComponentModel; using System. ...
- winform制作简单计算器
public Form1() { InitializeComponent(); textBox2.Text = ";//主显示屏 textBox1.Text = "";/ ...
- WinForm 制作一个简单的计算器
namespace WindowsFormsApplication6 { public partial class Form1 : Form { //存储上次点击了什么按钮,0代表什么都没有点击,1代 ...
- C# winform(计算器)
随机推荐
- 【noiOJ】p7940
01:查找最接近的元素 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个非降序列中,查找与给定值最接近的元素. 输入 第一行包含一个整数n,为非降序列长度.1 <= n ...
- insert into select 与select into from -- sql 批量插入
参考资料:http://www.w3school.com.cn/sql/sql_union.asp UNION:操作符用于合并两个或多个select语句的结果集. ...
- 修改linux运行级别
1.Linux下的7个运行级别 0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭. 1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登 ...
- C#常用方法集合
public class Utility:Page { #region 数据转换 /// <summary> /// 返回对象obj的String值,obj为null时返回空值. /// ...
- REST
REST (REpresentational State Transfer). 为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁. "设计良好的网络应用表现为 ...
- [转] - MC、MC、MCMC简述
贝叶斯集锦(3):从MC.MC到MCMC 2013-07-31 23:03:39 #####一份草稿 贝叶斯计算基础 一.从MC.MC到MCMC 斯坦福统计学教授Persi Diaconis是一位传奇 ...
- 关于html页面布局
之前做的一个网站,结果今天这几天测试发现在19寸屏幕和手机屏幕上页面布局全乱了,今天刚刚改好,发现还是自己经验不足,做个小总结. 一.div布局要固定宽高 当div不设计长宽高而是自动由内部控件”撑“ ...
- Hibernate和Mybatis的对比
http://blog.csdn.net/jiuqiyuliang/article/details/45378065 Hibernate与Mybatis对比 1. 简介 Hibernate:Hiber ...
- zju(5)LED控制实验
1.实验目的 1.学习和掌握如何将一个驱动程序添加到Kconfig,编译到内核. 二.实验内容 1.编写EduKit-IV试验箱Linux操作系统下LED灯的驱动: 2.编写EduKit-IV试验箱L ...
- 读取文件内容fopen,fgets,fclose
<?php //首先采用“fopen”函数打开文件,得到返回值的就是资源类型.$file_handle = fopen("/data/webroot/resource/php/f.tx ...