从字符串中添加事件处理程序

本文关键字:事件处理 程序 添加 字符串 | 更新日期: 2023-09-27 18:03:37

大家好我有一个按钮,我知道它有一个" Click "事件。如何使用"点击"answers"委托"添加此事件?由于

从字符串中添加事件处理程序

定义辅助方法:

public static void AddEventHandler(object obj, string eventName, Delegate handler)
{
    if(obj == null) throw new ArgumentNullException("obj");
    if(eventName == null) throw new ArgumentNullException("eventName");
    if(handler == null) throw new ArgumentNullException("handler");
    var type = obj.GetType();
    var evt = type.GetEvent(eventName);
    if(evt == null) throw new ArgumentException(
        string.Format("Event '{0}' is not defined by type '{1}'", eventName, type.Name));
    evt.AddEventHandler(obj, handler);
}

并使用:

AddEventHandler(yourButton, "Click", yourHandlerDelegate);

在与表单相关的。cs文件中(Web form, Win form)::

// This will handle the event for the button named bntSubmit
protected void btnSubmit_Click(object sender, EventArgs e)
{
   // Code to handle click event
}

一般来说,大多数人(但不是全部)使用<controlid>_<event>命名约定作为事件处理程序。就像btnSumbit_Click对于id为btnSubmit的按钮的OnClick事件。

ASP。. NET中,您需要在标记(. NET)中设置按钮的OnClick属性。(在设计器中双击表单也会生成存根):

<asp:Button ID="btnSubmit" OnClick="btnSubmit_Click" Text="Submit" runat="server" />

在Win Forms中,双击设计器上的按钮是生成方法存根的最快方法。

我没有在MVC或WPF中工作过,但我想过程是相似的,方法签名是相同的。