繁体   English   中英

如何从其他类注册鼠标事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM