首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检索ToolStripButton事件引发异常

检索ToolStripButton事件引发异常
EN

Stack Overflow用户
提问于 2014-11-29 15:51:05
回答 1查看 59关注 0票数 0

我试图获取ToolStripButton事件的列表,代码第6行出现了一个错误:

代码语言:javascript
复制
public void GetEventHandlerList(ToolStripButton tsb)
{
    PropertyInfo propertyInfo = tsb.GetType().GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance);
    EventHandlerList eventHandlerList = propertyInfo.GetValue(tsb, new object[] { }) as EventHandlerList;
    FieldInfo fieldInfo = typeof(ToolStripButton).GetField("EventClick", BindingFlags.NonPublic | BindingFlags.Static);

    object eventKey = fieldInfo.GetValue(tsb);
    var eventHandler = eventHandlerList[eventKey] as Delegate;
    Delegate[] invocationList = eventHandler.GetInvocationList(); // <<<<<<==== Erro

 // rest of the code
}

总是返回null。我有一个过载的这个方法,其中的参数是一个“控制”,并正常工作。可能出什么问题了?PS:对不起,如果格式不对。我是新来的,想做好每件事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-29 16:30:52

在GetField (第3行)中缺少一个绑定标志: BindingFlags.FlattenHierarchy。

没有它,您将找不到"EventClick“字段,fieldInfo将始终为NULL,这本身就会导致问题。

我用此更改测试了您的代码,如果您实际上有一个与Click事件相关联的事件,它可以正常工作,否则会导致异常(参见Hans关于测试null的注释)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27204062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档