注册 登录
编程论坛 C# 论坛

求助C#计算器问题

飞不起的小鸟 发布于 2014-04-13 16:21, 791 次点击
代码如下
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 简单模拟计算器
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = "";
            label1.Text = "";

        }
        private void buttond_Click(object sender, EventArgs e)
        //单击数字命令按钮的事件处理程序
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button1_Click(object sender, EventArgs e)
        {

            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;

        }



        private void button2_Click(object sender, EventArgs e)
        {

            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button3_Click(object sender, EventArgs e)
        {

            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }
        private void button4_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }
        private void button5_Click(object sender, EventArgs e)
        {

            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }



        private void button6_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button7_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;

        }

        private void button8_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;

        }

        private void button9_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button10_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button11_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button12_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button13_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button14_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button15_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }

        private void button16_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + btn.Text;
        }
        private void buttonop_Click(object sender, EventArgs e)
        {
            
            Button btn = (Button)sender;
            
            if (btn.Name != "button12")//用户不单机“=”命令按钮
            {
                double x = Convert.ToDouble(textBox1.Text);
                string s = btn.Name;
                textBox1.Text = "";
                label1.Text = x.ToString();
            }
            else
            {
               
                if (label1.Text == "")
                    MessageBox.Show("输入不正确!!!", "信息提示", MessageBoxButtons.OK);
                else
                {
                    double y = Convert.ToDouble(textBox1.Text);
                    
                  
                    switch (s)//问题就在这个s,说上下文不存在名称s
                    {
                        case "button13"://用户刚前面单击“+”命令按钮
                            textBox1.Tex = (x + y).Tostring();
                            break;
                        case "button14"://用户刚前面单击“-”命令按钮
                            textBox1.Tex = (x - y).Tostring();
                            break;
                        case "button15"://用户刚前面单击“×”命令按钮
                            textBox1.Tex = (x * y).Tostring();
                            break;
                        case "button16"://用户刚前面单击“÷”命令按钮
                            if (y == 0)
                                MessageBox.Show("除零错误", "信息提示", MessageBoxButtons.OK);
                            else
                                textBox1.Tex = (x / y).Tostring();
                            break;
                    }
                    label1.Text = textBox1.Text;



                }
            }
  }
 }
  }
问题在那个变量s,我该怎么该才行
8 回复
#2
神奈创2014-04-13 23:28
提示什么错误,试试string s = btn.Name.Tostring();....你有没有修改button13、14、15、16的变量名啊
#3
神奈创2014-04-13 23:28
提示什么错误,试试string s = btn.Name.Tostring();....你有没有修改button13、14、15、16的变量名啊
#4
步向巅峰2014-04-14 17:35
作用域问题
 if (btn.Name != "button12")//用户不单机“=”命令按钮
            {
                string s = btn.Name;//作用域只在当前所在模块,无法贯穿到模块2,将字符串的命名放到if语句外边就不会报错了
                    模块1;
            }
            else
            {
                    模块2;
            }
不过你都编到winform了,怎么还问这种问题,控制台的时候应该就接触到作用域这个问题了吧。另外你程序的可读性也太差了,过段时间估计你自己都看不懂自己写的程序了,把控件重命名最好,要不到后面控件多的话会感到很乱的
#5
飞不起的小鸟2014-04-14 21:30
回复 4楼 步向巅峰
就是因为把它放到if外也会报错我才问的!!
#6
步向巅峰2014-04-15 15:19
我说的if是最外层的if,我试过了,没问题
#7
tzmyyu2014-04-15 22:38
这个论坛的字体怎么这么小,看着真费眼
#8
步向巅峰2014-04-17 13:11
回复 7 楼 tzmyyu
win+"+"用放大镜看
#9
xiaowuge2532014-05-08 22:43
回复 4 楼 步向巅峰
版主威武!
1