winform——简单计算器制作

Posted 这都不是事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        //存储上次点击了什么按钮,0代表什么都没点击,1代表点击了数字按钮,2代表点击了运算符
        private int prev = 0;
        //存储计算的中间结果
        private decimal zj = 0;
        //记录上次按的什么运算符
        private string prevysf = "+";
        public Form1()
        {
            InitializeComponent();
        }
        //数字键按钮
        private void button8_Click(object sender, EventArgs e)
        {
            //将事件源转换为按钮
            Button btn = sender as Button;
            //替换(如果下面文本框内容为0或者上次点击了运算符)
            if (prev == 2 || txtbottom.Text == "0")
            {
                txtbottom.Text = btn.Text;
            }
            //追加(如果下面文本框内容不为0并且上次没有点击运算符)
            else
            {
                txtbottom.Text += btn.Text;
            }
            //点击了数字按钮
            prev = 1;
        }
        //运算符按钮
        private void button17_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            //上次按了数字
            if (prev == 1)
            {
                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(0, s.Length - 1);
                s = s + btn.Text;
                txttop.Text = s;
            }
            //点击了运算符
            prev = 2;
            //记录下运算符
            prevysf = btn.Text;
          
        }
        //清零按钮
        private void button19_Click(object sender, EventArgs e)
        {
            txttop.Text = "";
            txtbottom.Text = "0";
            prev = 0;
            zj = 0;
            prevysf = "+";
        }

        private void button20_Click(object sender, EventArgs e)
        {
            txtbottom.Text = "0";
        }
        //等号按钮
        private void button4_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 = 0;
            
        }
        //
        private void button3_Click(object sender, EventArgs e)
        {
            txtbottom.Text += ".";
        }
    }
}

 

以上是关于winform——简单计算器制作的主要内容,如果未能解决你的问题,请参考以下文章

python 用于在终端中运行的sublime text 3的简单代码片段制作工具

winform制作回车效果

C#中 winform程序 怎么制作纵向选项卡

想用winform制作一个闹钟,实现将自己下载音乐作为闹钟铃声

在制作winform程序时,设计模式中可以调整控件的大小位置,但是编译之后不能改变了,请问如何改变?

C#winform怎么弄出类似于excel的表格?简单点的就好