为c#中动态生成的按钮添加keyup事件



我试图为我动态生成的按钮列表定义一个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
}

最新更新