簡體   English   中英

如何在C#Windows窗體中使用動態創建的Button / textBox?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM