![](/img/trans.png)
[英]How to properly filter the different actions that may result from a mouse event?
[英]How to register mouse event from a different class
我有一个类试图在另一个类中注册一个事件。
在类AI中有一个方法如下所示:
public void Mouse_Down(object sender, MouseEventArgs e)
{
}
我正在B类注册活动,如下:
ClassA classA = new ClassA();
classA.MouseDown += new MouseEventHandler(classA.Mouse_Down);
点击时没有发生任何事情。 有谁知道是什么问题。
假设您要处理ClassB
引发的事件:
您正在为ClassA
的活动注册活动,而不是ClassB
的活动。 你从b级做这件事并不意味着什么。
假设您确实想要处理ClassA
引发的事件:
一种可能性是ClassA
的不同实例触发事件,而不是处理事件的事件。
ClassA classA = new ClassA();
以上创建了classA的新实例。 如果不是这个引发事件,那么你将不会调用你的方法。
在事件触发代码(classA)中设置断点并检查EventHandlers集合。 我敢打赌,没有人注册,你正在搞乱classA实例。
您也可能永远不会获得断点,这意味着您的事件不会被触发。
无论如何,你想做的事情对我来说有点奇怪。
编辑:
您是否尝试以“正常方式”向同一事件注册不同的方法(例如,来自ClassA构造函数)? 如果您无法访问事件触发代码,那么在事件被触发时,最好的方法是检查是否注册了正确的处理程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.