如题: 下面这段代码是什么意思? 请大虾帮忙注解一下,谢谢!       因为他的所有数字button只用了这一个click事件! 所以有点看不懂......        private void button0_Click(object sender, EventArgs e)
        {
            if (bOperate)
            {
                txtShow.Text = "";
                bOperate = false;
            }
            
            string number = ((Button)sender).Text;            txtShow.Text = Operation.checkNumberInput(txtShow.Text, number);
            
        }
      小弟不慎感激 谢谢!1!

解决方案 »

  1.   

    string number = ((Button)sender).Text;这句打断点。
      

  2.   

        string number = ((Button)sender).Text;//得到当前按的按钮的文本也就是你刚刚按的那个按钮
       //number 大概是 * / - + 吧
      txtShow.Text = Operation.checkNumberInput(txtShow.Text, number);//返回值
        
      
      

  3.   

    bOperate 这个应该是按钮是不是+-*/, 是的话把显示清空让你输入新数字string number = ((Button)sender).Text;这一句得到你按的是哪一个数字, 再把stringnumber加到show里面去。估计这个方法里面有检查输入的数字是不是合法, 比如, 多个小数字不允许输入
    Operation.checkNumberInput(txtShow.Text, number);
      

  4.   

    因为他的所有数字button只用了这一个click事件! 所以有点看不懂......是数字呵呵
    看错了
      

  5.   

    ((Button)sender)这个就是当前点击的button对象
    ((Button)sender).Text就是当前点击的button对象上的数字
      

  6.   

    string number = ((Button)sender).Text;//把Sender转换成Button类型,然后获取它的Text,就是数字几
    Operation.checkNumberInput(txtShow.Text, number);\\至于这个方法是干啥的就要看代码才知道了,但是返回的很明显是字符串,而且用这个字符串更改了txtShow的显示
      

  7.   

            public static string checkNumberInput(string currentNumber, string inputString)
            {
                string result = "";
                if (inputString == ".")//输入:“.”    ,或先输入8后输入的. 即:“8.”
                {
                    if (currentNumber.IndexOf(".") < 0)//即:之前还没有输入“.”
                    {
                        if (currentNumber.Length == 0)
                            result = "0" + inputString;//如果之前没有输入,则返回:“0.”
                        else
                            result = currentNumber + inputString;//之前有输入数字,合并如:“8.”
                    }            }
                else if (currentNumber == "0")//如果之前输入的是:“0”,则返回最近输入的:数字
                {
                    result = inputString;
                }
                else
                {
                    result = currentNumber + inputString;//把多个数字合并
                }            return result;
            }
      

  8.   

    onclick方法中的参数 sender ,即是事件触发者。
    当点击按钮的时候触发该事件,进入到方法体后。
    这个sender ,就是你点的那个按钮。
    因为不能肯定触发者是一个什么类型,所以这里sender是object的。
    因为你知道这是一个button的点击事件,所以你可以把sender转换成button来操作这个触发者。
    string number = ((Button)sender).Text;
    这段代码分解为://得到事件触发者,就是你点的那个button
    Button b = (Button)sender;//获得它的文本
    string number = b.Text;
    比如那个按钮上面写着5,那么这个button的Text就是5.
      

  9.   

    估计使用了 表达式树,应该是这样的
    txtShow.Text = Operation.checkNumberInput(txtShow.Text, number);不断的把string number 加到 check~这个函数里面,每次调用这个函数,它都会做个检查看有没有遇到 '='如果遇到 那么就把积累的表达式,计算出来。你搜索一下 ,表达式树
      

  10.   

     if (bOperate)  //判断是否是运算符 如果是 则清空 输入框的值
      {
      txtShow.Text = "";
      bOperate = false;
      }
        
      
      string number = ((Button)sender).Text;//获得所按按钮的 text的值  txtShow.Text = Operation.checkNumberInput(txtShow.Text, number);
    //将text的值显示到 输入框 并进行必要的检查
      

  11.   

    他按钮控件上text里已经写了数字了,
    所以 string number = ((Button)sender).Text; 就是把按钮上的text读出来,
    然后写到显示框里:txtShow.Text = Operation.checkNumberInput(txtShow.Text, number);数字button的基本思路就是这样,不过计算器里的按钮分两类的,一类是数,一类是操作符(就是+-*/=)。
    每按一个按钮都要和前一个按钮进行联系,再判断,再计算,这lz自己好好理解吧。
      

  12.   

      有没有关于 string number = ((Button)sender).Text这个的详细解析啊?   因为这超出了常理,一个Button的事件是怎么样可以相应这10个Button事件的?
      

  13.   

    七楼已经解析过了。 再给你说一遍吧button_Click这个事件有二个参数, 第一个obejct sender表示是在哪个控件上触发, 第二个EvenArgs e表示触发事件的句柄。 在按钮上单击时, sender就是那个按钮。用(Button)sender 把控件还原为按钮, 再获取按钮上的文本“1,2,3,4,5”, 就得到了当前按了哪个数字。
      

  14.   


    顶,obejct sender 事件触发的对象,
      

  15.   

    LZ 能不能把这个的工程发给我 [email protected] 谢谢,我也想看看,这种处理方式我会经常用到所以想看一看
      

  16.   

    //事件的触发者 那么这里就是按钮 获得的是按钮上文本
      string number = ((Button)sender).Text;//组合数字,这里主要判断是了是不是小数
      txtShow.Text = Operation.checkNumberInput(txtShow.Text, number);
      

  17.   

    private void button0_Click(object sender, EventArgs e)
      {  if (bOperate)     //如果 bOperate=true,   //bOperate我猜应该是运算符或清零键设置为true
      {
      txtShow.Text = "";   //tetshow设置为空
      bOperate = false;
      }
        
      string number = ((Button)sender).Text;  //获取点击的按钮的显示的数字并赋给number  txtShow.Text = Operation.checkNumberInput(txtShow.Text, number);    //这个函数应该是一个数字显示的链接函数(把txtShow.Text和number连接起来存入txtShow.Text中),实现按一个数字textShow追加一个数字.
        
      }