做了几次。每次都忘记。所以记录下来。
测试环境如下:
- Windows 7
- Visual Studio 2010
//建立一个函数
private void callOnClick(Button btn)
{
//建立一个类型
Type t = typeof(Button);
//参数对象
object[] p = new object[1];
//产生方法
MethodInfo m = t.GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
//参数赋值。传入函数
p[0] = EventArgs.Empty;
//调用
m.Invoke(btn, p);
return;
}
//调用例子。
//调用Button1的onclick
callOnClick(Button1);
//调用Button5的onclick
callOnClick(Button5);
扩展一下,可以调用更多的事件。
private void callButtonEvent(Button btn, string EventName)
{
//建立一个类型
Type t = typeof(Button);
//参数对象
object[] p = new object[1];
//产生方法
MethodInfo m = t.GetMethod(EventName, BindingFlags.NonPublic | BindingFlags.Instance);
//参数赋值。传入函数
//获得参数资料
ParameterInfo[] para = m.GetParameters();

这篇博客记录了如何利用反射调用Windows Forms中的Button控件Click事件,并扩展到TextBox等其他控件的事件处理,同时介绍了如何传递事件参数。
最低0.47元/天 解锁文章
215





