private void button2_Click(object sender, EventArgs e,string str)
        {            str = "1";
            textBox1.Text = textBox1.Text + str;
            str = null;
        }        private void button3_Click(object sender, EventArgs e, string str)
        {
            str = "2";
            textBox1.Text = textBox1.Text + str;
            str = null;
        }        private void button4_Click(object sender, EventArgs e, string str)
        {
            str = "3";
            textBox1.Text = textBox1.Text + str;
            str = null;
        }        private void button6_Click(object sender, EventArgs e,string str)
        {
            str = "4";
            textBox1.Text = textBox1.Text + str;
            str = null;
        }        private void button7_Click(object sender, EventArgs e, string str)
        {
            str = "5";
            textBox1.Text = textBox1.Text + str;
            str = null;
        }
怎么把他们用一个方法写出来,不论点哪个按钮都能调用?然后在方法里判断到底是点哪个按钮
行吗??求高人指点

解决方案 »

  1.   

    public string StrAdd(string str)
    {
        return str + "5";
    }
      

  2.   

    private void button2_Click(object sender, EventArgs e)
    {
        Button btn = sender as Button;//btn就是点击的按钮
    }
      

  3.   

    额,看花了。public string StrAdd(string str1,string str2)
    {
      return str1 + str2;
    }
      

  4.   


    private void CommonButton_Click(object sender, EventArgs e)
    {
        Button btn = sender as Button;
       
        /*我不知道你的str是否和按钮名称相关,只能猜测无关但是是固定值,所以就将其存放到按钮的Tag属性中*/
        string num = btn.Tag.ToString();
        textBox1.Text += num;
    }使用上面这种方式,需要:
    1、在属性管理器中为每个按钮的Tag属性赋值,即将str的值填入到Tag属性中。如果改str的值是变动的,你可以在加载事件中赋值,btn1.Tag = "2";
    2、在事件窗口中为按钮的Click事件指定处理方法CommonButton_Click
      

  5.   

    private void button1_Click(object sender, EventArgs e)
            {
                string str = ((Button)sender).Name.Substring(6) ;
                textBox1.Text = textBox1.Text + str;
                str = null;
            }
      

  6.   

    修改它们的click事件,把他们指向同一个。并修改他们的名字
      

  7.   


     <asp:Button ID="Button2" runat="server" Text="Button" 
            oncommand="Button_Command" CommandArgument ="1" />
     protected void Button_Command(object sender, CommandEventArgs e)
        {
            string str = e.CommandArgument.ToString();
            TextBox1.Text = TextBox1.Text + str;
            str = null;
        }
      

  8.   

    1、button有个Tag的属性,把要str的值放到Tag里面。
    2、所有的按钮都共用一个事件
    private void Button_Comm(object sender,EventArgs e)
    {
       string str=((Button)sender).Tag.ToString();
       textBox1.Text=textBox1.Text+str;
    }
      

  9.   

    string str="";
    private void button2_Click(object sender, EventArgs e,string str)
      {
      str = "1";
      Add(str);
      }  private void button3_Click(object sender, EventArgs e, string str)
      {
      str = "2";
     Add(str);
      }  private void button4_Click(object sender, EventArgs e, string str)
      {
      str = "3";
      Add(str);
      }  private void button6_Click(object sender, EventArgs e,string str)
      {
      str = "4"; 
      Add(str);
      }  private void button7_Click(object sender, EventArgs e, string str)
      {
      str = "5";
      Add(str);
      }public void Add(string str)
    {
       textBox1.Text+=str;
    }
      

  10.   


    在窗体的 Designer.cs里找到那些按钮的click事件,都绑定为一个按钮的事件即可
      

  11.   

            public void add(Button a,string b)
            {
                a.Text += b;
            }
      

  12.   

    public void add(Button a)
      {
      a.Text += str;
      str=string.Empty;
      }
      

  13.   

    foreache(Button btn in this.Controles)
    {
      btn.OnClick+= (sender ,e) =>{
          Button  bn = sender as btn;
          btn .Text+=  btn .Tag!=null ? "" :btn.Tag as string;
      };
    }
      

  14.   

    还有在textbox里的tag属性绑定你要的数据,然后你就可以通过btn.tag得到!也就是str=btn.tag;