c#调用按钮的点击事件或将点击事件复制给其他控件
调用按钮点击事件
/// <summary>
/// 调用按钮点击事件
/// </summary>
/// <param name="button">被调用的按钮</param>
public static void InvokeClick(Button button)
{
//建立一个类型
Type type = button.GetType();
//参数对象
object[] o = new object[1];
//产生方法
MethodInfo m = type.GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
//参数赋值,传入函数
o[0] = EventArgs.Empty;
//调用
m.Invoke(button, o);
return;
}
//调用按钮Button1的点击事件
InvokeClick(Button1);
复制按钮的点击事件给其他控件
/// <summary>
/// 复制按钮的点击事件给其他控件
/// </summary>
/// <param name="control">要复制的控件</param>
/// <param name="button">被复制的按钮</param>
public static void InitClick(Control control, Button button)
{
control.Click += (sender, e) =>
{
//建立一个类型,与第二个形参的类型一样
Type type = button.GetType();
//参数对象
object[] o = new object[1];
//产生方法
MethodInfo m = type.GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
//参数赋值,传入函数
o[0] = EventArgs.Empty;
//调用
m.Invoke(button, o);
return;
};
}
//复制按钮Button1的点击事件给Label1
InitClick(Label1, Button1);
这里用按钮进行举例,如项目中是其他类型只需将形参中的参数类型修改即可