我不知道要发送的按钮的名称。
为了进一步处理数据,我需要至少传递一个id。
但是当我尝试与事件一起发送其他内容时,会出现错误。
我有Sqlite数据库
for (int i = 0; i < database.Rows.Count; i1++)
{
Button buttonNew = new Button();
int id = Convert.ToInt32(row["id"]); //i get id elem of my database
buttonNew.Click += ButtonNewClick(id);
}
void ButtonNewClick(int id)
{
Form2 fNext = new Form2();
fNext.Show();
//Other operations...
}
也许我做错了什么...
你能帮我吗?
答案 0 :(得分:0)
将ID存储在动态按钮的 TAG 属性中,然后可以通过在点击事件中将“发送者”投射到按钮上来检索ID:
private void Foo()
{
for (int i = 0; i < database.Rows.Count; i1++)
{
Button buttonNew = new Button();
int id = Convert.ToInt32(row["id"]); //i get id elem of my database
buttonNew.Tag = id; // store the ID for later retrieval
buttonNew.Click += ButtonNew_Click;
// ... add "buttonNew" to something ...
}
}
private void ButtonNew_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
int id = (int)btn.Tag;
// ... do something with "id" ...
}
请注意,点击处理程序的签名已更改。