我正在尝试删除一个删除textbox
中文本的按钮。但是,这里的问题是我将有多个textbox
,它们有多个button
,分别删除文本。我已经尝试了一种奇怪的方法,通过switch
案例获取button
名称来处理不同的textbox
,如下所示:
switch(btn.Name)
{
case "button1": textbox1.Clear();
break;
case "button2": textbox2.Clear();
break;
}
虽然这解决了这个问题,但我发现这在设计方面确实不稳健且不实用。所以我想问一下是否有更好的方式做到这一点?谢谢!
答案 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
}
}