C#窗体计算器
使用窗体写的计算器小程序,不是十分完善,键盘输入只能输入数字键,其他需要换档键的键的输入没有搞懂,先发上来左右,以作留存。
界面截图
主要使用的是TextBox和button控件
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 WindowsFormsApplication1
{
public partial class jisuanqi : Form
{
//存储上次点击了什么按钮,0代表什么都没点击,1代表点击了数字按钮,2代表点击了运算符
private int prev = ;
//存储中间结果
private decimal zjjg = ;
//记录上次按的什么运算符
private string preysf = "+";
//记录上次按的是等号
private int denghao = ; public jisuanqi()
{
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 (preysf)
{
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
{
string s = TXTTOP.Text;
if (s.Length >= )
{
s = s.Substring(, s.Length - );
s = s + btn.Text;
}
else
{
s = "";
s = s + btn.Text;
}
TXTTOP.Text = s;
}
//加号
prev = ;
preysf = btn.Text;
} private void button15_Click(object sender, EventArgs e)
{
TXTTOP.Text = "";
TXTbottom.Text = "";
prev = ;
zjjg = ;
preysf = "+";
} private void jisuanqi_KeyDown(object sender, KeyEventArgs e)
{ if (
e.KeyCode == Keys.D0 || e.KeyCode == Keys.NumPad0 ||
e.KeyCode == Keys.D1 || e.KeyCode == Keys.NumPad1 ||
e.KeyCode == Keys.D2 || e.KeyCode == Keys.NumPad2 ||
e.KeyCode == Keys.D3 || e.KeyCode == Keys.NumPad3 ||
e.KeyCode == Keys.D4 || e.KeyCode == Keys.NumPad4 ||
e.KeyCode == Keys.D5 || e.KeyCode == Keys.NumPad5 ||
e.KeyCode == Keys.D6 || e.KeyCode == Keys.NumPad6 ||
e.KeyCode == Keys.D7 || e.KeyCode == Keys.NumPad7 ||
e.KeyCode == Keys.D8 || e.KeyCode == Keys.NumPad8 ||
e.KeyCode == Keys.D9 || e.KeyCode == Keys.NumPad9
)
{
if (prev == || TXTbottom.Text == "")
{
string a = e.KeyData.ToString();
TXTbottom.Text = a.Substring((a.Length-),);
}
else
{
string a = e.KeyData.ToString();
TXTbottom.Text += a.Substring((a.Length - ), ); }
prev = ;
}
//else if (
// //e.KeyCode == Keys.Add || e.KeyCode == Keys.Subtract || e.KeyCode == Keys.Multiply || e.KeyCode == Keys.Divide||
// e.KeyCode==Keys.Shift&&e.KeyCode==Keys.D8
// )
//{
// MessageBox.Show(e.KeyData.ToString());
//}
else if(e.KeyCode==Keys.Back)
{
string s = TXTbottom.Text;
if (s.Length >= )
{
s = s.Substring(, s.Length - );
}
else
{
s = "";
}
TXTbottom.Text = s;
}
} private void button17_Click(object sender, EventArgs e)
{
string s = TXTbottom.Text;
if (s.Length >= )
{
s = s.Substring(, s.Length - );
}
else
{
s = "";
}
TXTbottom.Text = s;
} private void button14_Click(object sender, EventArgs e)//等号
{
Button btn = sender as Button; //上次按了数字
if (prev == )
{
TXTTOP.Text += TXTbottom.Text + btn.Text;
switch (preysf)
{
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
{
string s = TXTTOP.Text;
if (s.Length >= )
{
s = s.Substring(, s.Length - );
s = s + btn.Text;
}
else
{
s = "";
s = s + btn.Text;
}
TXTbottom.Text = s;
}
//加号
prev = ;
preysf = btn.Text;
TXTTOP.Text = "";
zjjg = ;
preysf = "+";
denghao = ;
} private void jisuanqi_Load(object sender, EventArgs e)
{ }
}
}
程序冗余还是有点多,目前没有想要要怎么精简
C#窗体计算器的更多相关文章
- 使用listview空控件展示数据
1.使用listview控件可以一次性的将有关的全部图像保存在控件中,建立集合图像. 图像列表控件的主要属性 属性 ...
- 人品计算器 JFrame 窗体软件版 JPanel JTextField JTextArea JButtton JLabel setContentPane Swing包(用户界面工具包)
import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.eve ...
- C# 窗体程序入门 之计算器
之前一直在java的B/S,这次被要求做一个C/S,其中客户端主要是界面和socket通信.因为没有使用过C#和Visual Studio的控件编程,先来个HelloWorld. 我的环境是visua ...
- 计算器软件实现系列(六)windowform窗体+SQL+策略模式
一 整体概述 这个计算器软件的功能和以前的功能基本上一样,只不过是数据的保存形式发生了变化,,以前用的是txt文件保存,现在更正用SQL数据库,现在更改了以前的文件保存形式,是三层架构中数据层的更换, ...
- 自己动手写计算器v1.0
今天突发奇想,想着看了还几个设计模式了,倒不如写点东西来实践它们.发现计算器这种就比较合适,打算随着设计模式的学习,会对计算器不断的做改进. 包括功能的增加和算法的改进.初学者难免犯错,希望大家不吝指 ...
- [原][C#][winForm]分级基金折溢价WinForm网络计算器
分级基金折溢价WinForm网络计算器 通过子/母基金代码,从 [ 东方财富网,天天基金网,新浪 ] 抓取分级基金的子母基金数据(代码,名称,净值,价格), 并计算出子基金(A基金,B基金)以及母基金 ...
- c#制作计算器全过程
前言: 网上看的计算器制作只有代码,没有为全过程下面贴图,所以我在下面主要是贴图,让大家零基础制作计算器. 我的环境是visual studio 2010,其他版本例如2008,2012 都可以 1. ...
- java 24 - 9 GUI 之 给窗体换图标、设置启动在屏幕中间、更换皮肤
A.首先更改窗体左上角的图片 步骤一: 创建3个包,分别建立1个类 第一个是窗体的包,窗体类:设置窗体的主要布置和功能 第二个是资源包,图片:把想要改的图案拉进来 第三个是UI界面包,UI界面设计类: ...
- java 24 - 8 GUI之创建四则运算计算器(未校验版)
这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...
随机推荐
- TI公司Tina-ti和FilterProDesktop下载地址
http://www.ti.com/tool/tina-ti http://focus.ti.com/en/download/aap/DesignEnv/FilterPro-DT/FilterProD ...
- getting started with Baxter Research Robot
1. Baxter Research Robot Baxter Research Robot is from Rethink Robotics. There is also a video on TE ...
- phpcms标签大全V9
转自:http://blog.csdn.net/cloudday/article/details/7343448调用头部 尾部 {template "content"," ...
- netbeans环境的建立
这是一个简单的实验,熟悉NetBeans的IDE环境的开发 首先下载一个NetBeans,可以在官网上下https://netbeans.org/downloads/index.html 要装NetB ...
- 初识Oracle
登录时无法登陆: 无监听程序 ———>启动服务OracleXETNListener 监听程序当前无法识别连接描述中的请求服务————>重启服务 OracleServic ...
- js addEventListener attachEvent
attachEvent方法,为某一事件附加其它的处理事件.(不支持Mozilla系列) addEventListener方法 用于 Mozilla系列 举例: document.getElementB ...
- Poco C++——JSON解析
#include <iostream> #include "Poco/Dynamic/Var.h" #include "Poco/Dynamic/Pair.h ...
- Boostrap学习心得
进入新公司,前端用到各种页面元素几乎都是bootStrap框架里的,下面介绍下某些页面控件怎么运用,作为知识点备份,提供有需要人观看: 首先下载bootstrap,地址http://www.bootc ...
- ubuntu sudo apt-get update 失败 解决方法
sudo apt-get update 报了一堆错误: Err http://cn.archive.ubuntu.com trusty InRelease Err http://cn.archive. ...
- Python核心编程-基础
python编码风格指南:www.Python.org/doc/essays/styleguide.htmlwww.Python.org/dev/peps/pep-0007/www.Python.or ...