我试图为我动态生成的按钮列表定义一个keyUp事件,但我找不到合适的方法。
这是我用来生成按钮的代码。
public void generateurBtns()
{
test.cmd.CommandText = "select id from Citoyens";
test.cmd.Connection = test.cnx;
test.dr = test.cmd.ExecuteReader();
while (test.dr.Read())
{
Button Citoyen = new Button();
citoyensBtns.Add(Citoyen);
this.Controls.Add(Citoyen);
Citoyen.Name = test.dr[0].ToString();
Citoyen.Click += new EventHandler(button_keyup);
}
test.dr.Close();
}
我定义button_keyup方法如下。
void button_keyup(object sender, EventArgs e)
{
//code executed if button released
}
关于如何使这项工作发挥作用,有什么建议吗?
您是否尝试过KeyUp
事件而不是Click
?
public void generateurBtns()
{
test.cmd.CommandText = "select id from Citoyens";
test.cmd.Connection = test.cnx;
test.dr = test.cmd.ExecuteReader();
while (test.dr.Read())
{
Button Citoyen = new Button();
citoyensBtns.Add(Citoyen);
this.Controls.Add(Citoyen);
Citoyen.Name = test.dr[0].ToString();
Citoyen.KeyUp += new KeyEventHandler(button_keyup);
}
test.dr.Close();
}
更新:您还需要实现正确的委托:
void button_keyup(object? sender, KeyEventArgs e)
{
//code executed if button released
}