有没有办法在不使用设计器的情况下为c#中的控件添加事件处理程序?

时间:2009-10-30 14:49:30

标签: c# event-handling designer

我刚刚开始使用c#,并且想知道是否有更简单的方法来为控件创建事件处理程序。例如,如果我在webform上有一个按钮,我想要一个单击处理程序,我只需打开设计器并双击它就可以创建并连接到我。如果我没有选择使用设计师,除了手工之外还有什么方法可以创建它?例如,在VB中,所有控件都显示在代码窗口下拉列表中,因此您可以选择它们,选择一个事件并将其删除。在c#中是否有类似的东西,或者我是不是很难坚持下去?

4 个答案:

答案 0 :(得分:7)

当然,你可以自己完成设计师为你做的工作。 只需添加:

button1.Click += new System.EventHandler(button1_Click);

并创建一个适合调用的方法:

private void button1_Click(object sender, EventArgs e) { // button1 was clicked }

答案 1 :(得分:4)

它有多难? 只需写下

yourComponent.YourEvent += >Cursor is here<

现在您应该看到一个提示,通过点击[tab],您将获得针对此特定事件的方法实现。

很好,很容易。完全没有必要用不存在的东西污染导航下拉列表。 ; - )

答案 2 :(得分:2)

为什么每个人都建议一个新的EventHandler对象?冗余

button1.Click += MyHandler;

private void MyHandler(object sender, EventArgs args)
{
}

或使用C#3.0

button.Click += (sender, args) => Handler();

答案 3 :(得分:1)

如果您甚至不想创建函数,则可以使用lambdas,例如,事件处理程序非常简单。

您可以执行以下操作:

radioButtonLeft.Click += new EventHandler((sender, e) => CallSomeMethod(1));

这是我找到的最简单的方法。