![](/img/trans.png)
[英]How to remove dynamically created textbox and labels in C# Windows Forms?
[英]How to Use Dynamically Created Button/textBox in C# Windows Forms?
private void createButton()
{
flowLayoutPanel1.Controls.Clear();
for (int i = 0; i < 4; i++)
{
Button b = new Button();
b.Name = i.ToString();
b.Text = "Button" + i.ToString();
flowLayoutPanel1.Controls.Add(b);
}
}
private void button1_Click(object sender, EventArgs e)
{
createButton();
}
我使用此代碼在運行時創建一些按鈕,現在我如何使用這些創建的按鈕執行不同的操作? 我很新,所以請幫助我,非常感謝:)
您可以為click事件分配事件處理程序:
b.Click += SomeMethod;
SomeMethod
必須具有以下簽名:
void SomeMethod(object sender, EventArgs e)
創建按鈕時,需要訂閱Click
事件,如下所示:
Button b = new Button();
b.Click += new EventHandler(b_Click);
// or
b.Click += b_Click;
// or
b.Click += delegate(object sender, EventArgs e) {/* any action */});
// or
b.Click += (s, e) => { /* any action */ };
void b_Click(object sender, EventArgs e)
{
// any action
}
當您是Visual Studio中的設計器時,這是自動完成的,並且您單擊按鈕以創建方法button1_Click
。
您可以在表單的Designer.cs中搜索,您將找到一個等效的行:
button1.Click += new EventHandler(button1_Click);
相關問題:
b.Click += delegate(object sender, EventArgs e) {
Button clickedButton = (Button)sender; //gets the clicked button
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.