private int _btnCount = 0;
private void button1_Click(object sender, EventArgs e)
{
_btnCount++;
var btn = new Button
{
Name = "btn" + _btnCount,
Text = "動態按鈕 " + _btnCount,
Location = new Point(12, 13 + _btnCount * 30)
};
panel1.Controls.Add(btn);
btn.Click += Btn_Click; // 共用事件處理器
}
private void Btn_Click(object sender, EventArgs e)
{
var b = (Button)sender;
MessageBox.Show(b.Name);
}
語法:Control.Command += new CommandEventHandler(this.EventMethod);
適用於 Button、LinkButton、ImageButton 等實作 IButtonControl 的控制項。
// 動態建立 Button 並加入 Panel
Button btn = new Button { ID = "dynamicBtn", Text = "Click Me", CommandArgument = "arg1" };
btn.Command += DynamicBtn_Command;
Panel1.Controls.Add(btn);
void DynamicBtn_Command(object sender, CommandEventArgs e)
{
Response.Write($"CommandArgument: {e.CommandArgument}");
}