![](/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.