C#按钮绑定到文本框
我正在尝试实现一个按钮,用于删除C#按钮绑定到文本框,c#,forms,button,text,C#,Forms,Button,Text,我正在尝试实现一个按钮,用于删除文本框中的文本。然而,这里的问题是,我将有多个textbox,其中有多个按钮,分别删除文本。我尝试了一种奇怪的方法,使用了一个开关案例,让按钮名称处理不同的文本框,如下所示: switch(btn.Name) { case "button1": textbox1.Clear(); break; case "button2": textbox2.Clear(); break; } 虽然这解决了问题,但我发现这在设计方
文本框中的文本。然而,这里的问题是,我将有多个textbox
,其中有多个按钮
,分别删除文本。我尝试了一种奇怪的方法,使用了一个开关
案例,让按钮
名称处理不同的文本框
,如下所示:
switch(btn.Name)
{
case "button1": textbox1.Clear();
break;
case "button2": textbox2.Clear();
break;
}
虽然这解决了问题,但我发现这在设计方面确实不够健壮和实用。因此,我想问,是否有任何方法可以更好地做到这一点?谢谢大家! 如果你的逻辑是1:1;您可以对每个按钮使用button click事件,并放置要清除的特定文本框。如果你的逻辑不是1:1;请在你的问题中更具体一些
private void button1_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
如果你的逻辑是1:1;您可以对每个按钮使用button click事件,并放置要清除的特定文本框。如果你的逻辑不是1:1;请在你的问题中更具体一些
private void button1_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
您可以像这样扩展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 = "";
}
}
}
公共部分类按钮列表:按钮
{
公共列表{get;set;}
公共按钮列表()
{
列表=新列表();
点击+=CleanTextOfList;
}
私有void CleanTextOfList(对象发送方,事件参数e)
{
foreach(列表中的变量项)
{
项目.文本=”;
}
}
}
将要清除文本的文本框添加到ListOfTextbox中,它们的文本将是干净的您可以像这样扩展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 = "";
}
}
}
公共部分类按钮列表:按钮
{
公共列表{get;set;}
公共按钮列表()
{
列表=新列表();
点击+=CleanTextOfList;
}
私有void CleanTextOfList(对象发送方,事件参数e)
{
foreach(列表中的变量项)
{
项目.文本=”;
}
}
}
将要清除其文本的文本框添加到ListOfTextbox中,它们的文本将是干净的如果使用控件集合提取数字部分是一对一,则实际上应该与提取数字部分一样简单。然后,您可以将所有按钮分配给click事件,而不需要x数量的事件处理程序。单击所有按钮的事件处理程序后
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
}
}
如果使用控件集合是一对一的,那么它实际上应该和提取数字部分一样简单。然后,您可以将所有按钮分配给click事件,而不需要x数量的事件处理程序。单击所有按钮的事件处理程序后
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
}
}
您可以保存所有控件名,稍后再查找它们。看到这篇文章嘿Stitch博士,谢谢你的回答,但我正在尝试寻找一种更好的设计,比如将按钮绑定到文本框的方法,这样我就不需要这样的开关盒。控件有一个名为Tag of type Object的属性。您可以将每个按钮的标记属性设置为它应该清除的文本框。对于1TextBox
,您的逻辑是否始终是1:1=1按钮?按钮
是否需要清除不同的文本框
?如果它是一对一ie按钮1=textbox1,那么您可以使用控件集合:((TextBox)控件[“TextBox”+btn.Name.Replace(“Button”,“”)]。清除()您可以保存所有控件名称并在以后查找它们。看到这篇文章嘿Stitch博士,谢谢你的回答,但我正在尝试寻找一种更好的设计,比如将按钮绑定到文本框的方法,这样我就不需要这样的开关盒。控件有一个名为Tag of type Object的属性。您可以将每个按钮的标记属性设置为它应该清除的文本框。对于1TextBox
,您的逻辑是否始终是1:1=1按钮?按钮
是否需要清除不同的文本框
?如果是一对一ie按钮1=textbox1,则可以使用控件集合:((TextBox)controls[“TextBox”+btn.Name.Replace(“Button”,“”)]。clear()