我需要使用多個按鈕的單個事件處理程序。我根據數據庫查詢通過while循環生成了這些按鈕。我創建了一個單一的方法C#動態genarate按鈕單個事件處理程序
void MyButtonClick(object sender, EventArgs e)
{
}
我是新來的C#。如何將所有按鈕的事件綁定到單個處理程序。
代碼用於產生按鈕:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
MydbConnection db = new MydbConnection();
MySqlConnection con = db.connection();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "select * from categories where online = 1";
cmd.Connection = con;
MySqlDataReader rd;
con.Open();
rd = cmd.ExecuteReader();
int i = 1;
while (rd.Read())
{
Button btn = new Button();
btn.Name = "btn-" + i.ToString();
btn.Tag = i;
btn.Text = rd.GetString(2).ToString();
btn.Height = 60;
btn.Width = 100;
btn.Location = new Point(900, 60 * i + 10);
this.Controls.Add(btn);
i++;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
如何將'btn.name'設置爲'MyButtonClick()'.. pls – user3722956
您無法設置名稱。因爲它是隻讀的。我懷疑你需要知道名稱,知道點擊了哪個按鈕?如果是這種情況,你可以像這樣拋出'sender'對象:'var btn =(Button)sender',不要忘記檢查null。 – Emad
謝謝你幫助我.. – user3722956