[英]C# Button bind to textbox
我正在嘗試實現一個刪除文本textbox
的按鈕。 但是,這里的問題是我將有多個textbox
,它們有多個button
,分別刪除文本。 我已經嘗試了一種奇怪的方法,通過一個switch
案例獲取button
名稱來處理不同的textbox
,如下所示:
switch(btn.Name)
{
case "button1": textbox1.Clear();
break;
case "button2": textbox2.Clear();
break;
}
雖然這解決了這個問題,但我發現這在設計方面確實不穩健且不實用。 所以我想問一下是否有更好的方式做到這一點? 謝謝!
如果你的邏輯是1:1; 您可以為每個按鈕使用按鈕單擊事件,並放置要清除的特定文本框。 如果你的邏輯不是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 = "";
}
}
}
添加要將其文本清除到ListOfTextbox的文本框,文本將是干凈的
它應該像提取數字部分一樣簡單,如果它是一對一使用控件集合。 然后,您可以將所有按鈕分配給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
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.