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 += ".";
        }
    }
}

 

转载于:https://www.cnblogs.com/H2921306656/p/5839100.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要制作一个简易的 WinForm 计算器,您可以按照以下步骤进行操作: 1. 打开 Visual Studio,并创建一个新的 WinForm 项目。 2. 在窗体中添加一些按钮和一个文本框,用于显示计算结果。 3. 为每个按钮设置点击事件处理程序,以便在用户点击按钮时执行相应的操作。 4. 在代码中实现计算逻辑,例如使用 if/else 或 switch 语句来处理不同的操作。 5. 将用户点击的按钮上的值附加到文本框中。 6. 当用户点击等号按钮时,获取文本框中的表达式并计算结果。 7. 将计算结果显示在文本框中。 以下是一个简单的示例代码: ```csharp using System; using System.Windows.Forms; namespace CalculatorApp { public partial class CalculatorForm : Form { public CalculatorForm() { InitializeComponent(); } private void btnNumber_Click(object sender, EventArgs e) { Button btn = (Button)sender; txtExpression.Text += btn.Text; } private void btnEqual_Click(object sender, EventArgs e) { try { string expression = txtExpression.Text; double result = EvaluateExpression(expression); txtExpression.Text = result.ToString(); } catch (Exception ex) { MessageBox.Show("错误的表达式:" + ex.Message); } } private double EvaluateExpression(string expression) { // 在这里实现你的计算逻辑,可以使用 DataTable.Compute 方法或其他计算方法 // 例如:return Convert.ToDouble(new DataTable().Compute(expression, null)); // 注意:这只是一个示例,对于更复杂的计算逻辑,您可能需要使用更高级的方法。 } } } ``` 请根据您的需求进行适当调整和扩展。希望这可以帮助您开始制作简易的 WinForm 计算器!如果您有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值