在我的MouseDoubleClick中,我可能遇到一个案例,我想用MouseDoubleClick调用列表中的所有控件。但是我无法调用MouseDoubleClick,只能向链中添加/删除事件。
如何调用MouseDoubleClick / OnMouseDoubleClick?
ATM我解决了这个问题,因为我知道对象MouseDoubleClick函数,我自己调用该特定函数传递参数。如果我不知道为控件MouseDoubleClick
设置了什么功能,我如何调用该事件答案 0 :(得分:0)
有很多方法可以做到这一点:
正如您所做的那样,直接对来电进行硬编码。不是一种非常灵活的方法。
添加您自己的内部方法来调用控件(例如实现一个特殊的接口),或者您引发的所有其他感兴趣的控件都订阅的事件。这只适用于所有控件的源代码,或者自己的派生UserControls,这可能会有很多工作。
将WM_LBUTTONDBLCLICK消息发布到列表中每个控件的基础窗口。这应该适用于任何类型的控制,只要它们在处理程序中不做任何过于顽皮的事情。请注意,您可能需要计算每个控件中的伪x,y坐标,以欺骗它认为双击位于其自己的边界内 - 双击控制边界外部可能会导致未定义的行为。当然,控件中点击的位置可能很重要(例如,您可以双击列表框控件中显示的各个项目)
答案 1 :(得分:0)
我解决了这个问题,因为我知道对象MouseDoubleClick函数,我自己调用该特定函数传递参数。如果我不知道为控件MouseDoubleClick
设置了什么功能,我如何调用该事件