使用窗体写的计算器小程序,不是十分完善,键盘输入只能输入数字键,其他需要换档键的键的输入没有搞懂,先发上来左右,以作留存。

界面截图

主要使用的是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#窗体计算器的更多相关文章

  1. 使用listview空控件展示数据

    1.使用listview控件可以一次性的将有关的全部图像保存在控件中,建立集合图像. 图像列表控件的主要属性 属性                                           ...

  2. 人品计算器 JFrame 窗体软件版 JPanel JTextField JTextArea JButtton JLabel setContentPane Swing包(用户界面工具包)

    import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.eve ...

  3. C# 窗体程序入门 之计算器

    之前一直在java的B/S,这次被要求做一个C/S,其中客户端主要是界面和socket通信.因为没有使用过C#和Visual Studio的控件编程,先来个HelloWorld. 我的环境是visua ...

  4. 计算器软件实现系列(六)windowform窗体+SQL+策略模式

    一 整体概述 这个计算器软件的功能和以前的功能基本上一样,只不过是数据的保存形式发生了变化,,以前用的是txt文件保存,现在更正用SQL数据库,现在更改了以前的文件保存形式,是三层架构中数据层的更换, ...

  5. 自己动手写计算器v1.0

    今天突发奇想,想着看了还几个设计模式了,倒不如写点东西来实践它们.发现计算器这种就比较合适,打算随着设计模式的学习,会对计算器不断的做改进. 包括功能的增加和算法的改进.初学者难免犯错,希望大家不吝指 ...

  6. [原][C#][winForm]分级基金折溢价WinForm网络计算器

    分级基金折溢价WinForm网络计算器 通过子/母基金代码,从 [ 东方财富网,天天基金网,新浪 ] 抓取分级基金的子母基金数据(代码,名称,净值,价格), 并计算出子基金(A基金,B基金)以及母基金 ...

  7. c#制作计算器全过程

    前言: 网上看的计算器制作只有代码,没有为全过程下面贴图,所以我在下面主要是贴图,让大家零基础制作计算器. 我的环境是visual studio 2010,其他版本例如2008,2012 都可以 1. ...

  8. java 24 - 9 GUI 之 给窗体换图标、设置启动在屏幕中间、更换皮肤

    A.首先更改窗体左上角的图片 步骤一: 创建3个包,分别建立1个类 第一个是窗体的包,窗体类:设置窗体的主要布置和功能 第二个是资源包,图片:把想要改的图案拉进来 第三个是UI界面包,UI界面设计类: ...

  9. java 24 - 8 GUI之创建四则运算计算器(未校验版)

    这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...

随机推荐

  1. TI公司Tina-ti和FilterProDesktop下载地址

    http://www.ti.com/tool/tina-ti http://focus.ti.com/en/download/aap/DesignEnv/FilterPro-DT/FilterProD ...

  2. getting started with Baxter Research Robot

    1. Baxter Research Robot Baxter Research Robot is from Rethink Robotics. There is also a video on TE ...

  3. phpcms标签大全V9

    转自:http://blog.csdn.net/cloudday/article/details/7343448调用头部 尾部 {template "content"," ...

  4. netbeans环境的建立

    这是一个简单的实验,熟悉NetBeans的IDE环境的开发 首先下载一个NetBeans,可以在官网上下https://netbeans.org/downloads/index.html 要装NetB ...

  5. 初识Oracle

    登录时无法登陆:   无监听程序 ———>启动服务OracleXETNListener   监听程序当前无法识别连接描述中的请求服务————>重启服务       OracleServic ...

  6. js addEventListener attachEvent

    attachEvent方法,为某一事件附加其它的处理事件.(不支持Mozilla系列) addEventListener方法 用于 Mozilla系列 举例: document.getElementB ...

  7. Poco C++——JSON解析

    #include <iostream> #include "Poco/Dynamic/Var.h" #include "Poco/Dynamic/Pair.h ...

  8. Boostrap学习心得

    进入新公司,前端用到各种页面元素几乎都是bootStrap框架里的,下面介绍下某些页面控件怎么运用,作为知识点备份,提供有需要人观看: 首先下载bootstrap,地址http://www.bootc ...

  9. ubuntu sudo apt-get update 失败 解决方法

    sudo apt-get update 报了一堆错误: Err http://cn.archive.ubuntu.com trusty InRelease Err http://cn.archive. ...

  10. Python核心编程-基础

    python编码风格指南:www.Python.org/doc/essays/styleguide.htmlwww.Python.org/dev/peps/pep-0007/www.Python.or ...