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(计算器)
随机推荐
- 自定义plain 样式的 tableview,模拟器上不显示分割线,真机上却显示分割线.
一, 经历 1> 自定义plain 样式的 tableview,模拟器上不显示分割线,真机上却显示cell 下面的分割线. 2> 尝试使用表格的separatorStyle属性,尝试失败. ...
- Command mvn jetty:run
How to use the command mav jetty:run? There is a simple display as below: Step 1: You should generat ...
- HDU 1710 二叉树遍历,输入前、中序求后序
1.HDU 1710 Binary Tree Traversals 2.链接:http://acm.hust.edu.cn/vjudge/problem/33792 3.总结:记录下根结点,再拆分 ...
- LVS + KEEPAlived 配置 DIR模式
1 .1 Lvs LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目 ...
- sublime text 3.0 安装 HTML-CSS-JS Prettify
可能下载的最新的这个版本,修改了底层的api.在工具栏中找不到添加插件的菜单了,如图下红框这两项最开始是没有的: 找了好久的资料,找不到.然后去https://packagecontrol.io/in ...
- (转)FTP操作类,从FTP下载文件
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...
- 1047. Student List for Course (25)
Zhejiang University has 40000 students and provides 2500 courses. Now given the registered course li ...
- decode 函数将字符串从某种编码转为 unicode 字符
环境:Ubuntu, Python 2.7 基础知识 这个程序涉及到的知识点有几个,在这里列出来,不详细讲,有疑问的直接百度会有一堆的. 1.urllib2 模块的 request 对像来设置 HTT ...
- IOS第九天(2:QQ聊天界面键盘优化 和自动回复)
***********controller.m #import "HMViewController.h" #import "HMMessageModel.h" ...
- 用refresh控制浏览器定时刷新
package cn.itcast.response; import java.io.IOException; import java.util.Random; import javax.servle ...