是否可以添加按钮单击事件? 我想动态添加控件,但我没有将事件绑定到我的控件。
this.buttonDeneme = new System.Windows.Forms.Button();
this.buttonDeneme.Location = new System.Drawing.Point(150, 90);
this.buttonDeneme.Name = "button1";
this.buttonDeneme.Size = new System.Drawing.Size(122, 23);
this.buttonDeneme.TabIndex = 0;
this.buttonDeneme.Text = "FileUpload";
this.buttonDeneme.UseVisualStyleBackColor = true;
this.buttonDeneme.Click += ????
@dotTutorial答案将起作用,但是很多人仍然难以使用Linq和Lambda表达式,所以如果您不理解它,最基本的编写方法是:
this.buttonDeneme.Click += new EventHandler(MyCustomClickHandler);
void MyCustomClickHandler(object sender, EventArgs e)
{
// do whatever you want here
}
但是创建多个按钮通常是因为它们不会执行完全相同的操作,因此您可能希望将this.buttonDeneme.Tag
设置为某种标识符。 我更喜欢在那里使用字符串。
然后在 Click 事件中,您可以检索该值并知道该怎么做。 这里是使用标签的更正版本:
this.buttonDeneme.Tag = "SearchBook";
this.buttonDeneme.Click += new EventHandler(MyCustomClickHandler);
void MyCustomClickHandler(object sender, EventArgs e)
{
// for button created above the value when
// the click is called will be "SearchBook"
string sTag = ((Button)sender).Tag.ToString();
if(sTag == "SearchBook")
{
// do stuff for search book
}
else if(sTag == "blablabla")
{
// do other stuff
}
}
最简单的替代方法是使用 lambda 表达式。
this.buttonDeneme.Click += ((s, e) => {
// The code that handles a click event
});
"s"将是发送方对象,"e"是事件参数。