小编Has*_*man的帖子

通过反思获得活动

我试图通过反射获取按钮的Click事件,这是我的代码:

Assembly assem = Assembly.GetExecutingAssembly();

Type tExForm = btnSave.GetType();
Object exFormAsObj = Activator.CreateInstance(tExForm);

EventInfo evClick = tExForm.GetEvent("Click");
Type tDelegate = evClick.EventHandlerType;

MethodInfo miHandler=
btnSave.GetType().GetMethod("Click",
BindingFlags.NonPublic | BindingFlags.Instance);

Delegate d = Delegate.CreateDelegate(tDelegate, btnSave, miHandler);

MethodInfo addHandler = evClick.GetAddMethod();
Object[] addHandlerArgs = { d };
addHandler.Invoke(exFormAsObj, addHandlerArgs);
Run Code Online (Sandbox Code Playgroud)

但是miHandler变量总是为空!

注意我关心的主要问题是如何在运行时调用特定控件的事件,有没有办法?例如,我想选择当用户按F1时触发哪个点击事件.

c# reflection

5
推荐指数
2
解决办法
4959
查看次数

如何从C#中的另一个进程捕获返回的对象

我有一个ac#程序,它将使用Process.start()调用另一个c#程序,我也有源代码.

我如何从第二个程序返回一个字符串,它可以被调用者程序读取.

谢谢

c# process

0
推荐指数
1
解决办法
150
查看次数

标签 统计

c# ×2

process ×1

reflection ×1