怎样给动态加入的按钮写触发事件(C#)

来源:百度知道 编辑:UC知道 时间:2024/05/09 04:31:20
添加按钮如下:
string[] array = new string[4] { "Add","Remove","Update","OK"};
int j = 0;
foreach(string i in array)
{
ButtonItem btn = new ButtonItem(i.ToString(),array[j]);
explorerBarGroupItem1.SubItems.Add(btn);
j = j + 1;
}

请问怎样给动态添加的按钮写触发事件,谢谢。
to rebinglunlun:加入按钮之前看不到按钮怎么给它们加鼠标事件呢,另外我对win消息机制也不是很了解。

to funlove9:问题是,添加的按钮怎样来绑定btn_Click?

很容易.
int identity=0;//自定的编号,可有可无.
private void button_Add_Click(object sender, EventArgs e)
{
??ButtonItem singleItem = new ButtonItem("btn_" + identity, "我是第"+(identity+1)+"个按钮!");
??singleItem.Click += new EventHandler(singleItem_Click);//添加点击事件
??panel_Buttons.Items.Add(singleItem);
??panel_Buttons.Refresh();
??++identity;
}

这个函数是另外一个button的点击事件.点击后ItemPanel中会添加一个Button.
但是所有添加的ButtonItem的点击事件全部指向singleItem_Click函数.
这是singleItem_Click函数
void singleItem_Click(object sender, EventArgs e)
{
??ButtonItem buttonItem=(ButtonItem)sender;
??//每个事件都有一个Sender(发送者)
??//所谓发送者就是触发了此事件的那个东西.
??//在这里,sender就是ButtonItem.就是你点的那个Button
??//这样通过sender就能知道用户是点了哪个按钮了.

??text_ShowSelection.Text = "您点击了 " + buttonItem.Name + " 这个按钮";
}

string[] array = new string[4] { "Add","Remove","Update","OK&q