从字符串中添加事件处理程序
本文关键字:事件处理 程序 添加 字符串 | 更新日期: 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中工作过,但我想过程是相似的,方法签名是相同的。