C#按钮绑定到文本框

时间:2016-05-13 02:17:37

标签: c# forms button text

我正在尝试删除一个删除textbox中文本的按钮。但是,这里的问题是我将有多个textbox,它们有多个button,分别删除文本。我已经尝试了一种奇怪的方法,通过switch案例获取button名称来处理不同的textbox,如下所示:

switch(btn.Name)
{
    case "button1": textbox1.Clear();
        break;
    case "button2": textbox2.Clear();
        break;
}

虽然这解决了这个问题,但我发现这在设计方面确实不稳健且不实用。所以我想问一下是否有更好的方式做到这一点?谢谢!

3 个答案:

答案 0 :(得分:0)

如果你的逻辑是1:1;您可以为每个按钮使用按钮单击事件,并放置要清除的特定文本框。如果你的逻辑不是1:1;请在您的问题中更具体。

private void button1_Click(object sender, EventArgs e)
{
    textBox1.Clear();
}

答案 1 :(得分:0)

您可以像这样扩展Button类

public partial class ButtonHasList : Button
{
    public List<Textbox> List { get; set ;  }
    public  ButtonHasList() 
    {
         List = new     List<Textbox> ();
         this.Click += CleanTextOfList;
    }
    private void  CleanTextOfList ( object sender,EventArgs e)
   {
          foreach ( var item in List)
          {
                   item.Text = "";
           }

    }  
}

添加要将其文本清除到ListOfTextbox的文本框,文本将是干净的

答案 2 :(得分:0)

它真的应该像提取数字部分一样简单,如果它是一对一使用控件集合。然后,您可以将所有按钮分配给click事件,而无需x个事件处理程序。一旦Click事件处理程序为所有按钮....

private void allButtons_Click(object sender, EventArgs e)
{
    try
    {
        Button btn = sender as Button;
        ((TextBox)Controls["textbox" + btn.Name.Replace("button", "")]).Clear();
    }
    catch (Exception ex)
    {
        //do something with the error
    }
}