簡體   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