您能告诉我如何确定在winform中引发的事件 或者如何将所有引发的事件添加到列表或c#中的文件中?
答案 0 :(得分:1)
从您的问题来看,听起来您希望看到每个被触发的事件。要做到这一点,您需要订阅每个事件。如果你真的想走这条路,你可以创建一个方法来读取传入的变量,并告诉你什么事件称为方法。然后,您可以将该方法挂钩到winform应用程序中的每个事件。列表将是巨大的,但它会让你知道每个事件何时被解雇。
答案 1 :(得分:1)
您可以使用Managed Spy。它在窗口左侧的树视图中显示进程列表,在右侧显示PropertyGrid。您可以展开该过程以查看该过程中的顶级窗口。
选择控件时,PropertyGrid会显示该控件的属性。单击“事件”选项卡将在树视图中的当前所选控件上显示诸如MouseMove之类的事件。要开始记录事件,请单击“开始记录”按钮。输出将如图所示。
答案 2 :(得分:0)
我不确定,我理解你的问题,但我仍然会尝试回答:
订阅事件时,将在引发该事件时调用您的方法。在您的方法中,您可以记录事件已被引发。
答案 3 :(得分:0)
答案 4 :(得分:0)
获取当前Type
声明或继承的事件 typeof(MyClass).GetEvents()
之后,您可以添加一个简单的委托
MyClass instance = new MyClass();
foreach (var e in typeof(MyClass).GetEvents())
{
FieldInfo fi = typeof(MyClass).GetField(e.Name,
BindingFlags.NonPublic | BindingFlags.Instance);
object value = fi.GetValue(instance);
if (value == null)
{
e.AddEventHandler(instance, handler);
}
}