2015-02-10 113 views
0

我正在使用vb.net。 我有一個焦點的控件(例如一個按鈕,或一個文本框......或其他)。VB.NET:如何檢測集中控制之外的鼠標點擊

我想檢測用戶何時點擊此控件。

的點擊可能是:

  • 上的另一個控件,可以讓焦點(例如文本框...)。

  • 上的另一個控件不能獲得焦點(例如面板...)

  • 在窗體上。

有沒有檢測到這種情況的任何一般方法:控制具有焦點,用戶點擊外

謝謝!

+0

你的意思是'onClick()'? – 2015-02-10 05:40:43

+0

使用'lostfocus()'..它檢測焦點從控件離開時.. – 2015-02-10 05:50:59

+0

lostfocus不做我想要的,因爲當一個控件集中並且用戶點擊一個面板,例如不能得到重點,所以控制仍然集中,事件不會觸發。 – alex 2015-02-10 15:10:34

回答

1

沒有內置,但我相信它可以完成 - 使用AddHandler control.click控件,除了想知道什麼時候點擊是爲了別的東西以外的所有控件。

Sub RegisterControls(cntrl as Control) 
    For Each c as Control in cntrl 
     AddHandler c.click, AddressOf Whatever 
     If c.Controls.Count >0 Then RegisterControls(c) 
    Next 
End Sub 
+0

對不起,但我希望這個解決方案對每個控件都是通用的。因此,對於每個可以擁有焦點的控件,我都需要這種行爲:如果此控件具有焦點並且用戶單擊此控件的外部,我想檢測此事件。 – alex 2015-02-10 15:02:42

+0

@alex:那麼你想以上述爲起點。無論您做什麼,都需要以某種方式捕獲所有點擊事件。 – jmoreno 2015-02-10 15:17:27

+0

我在想有沒有什麼辦法來捕捉鼠標點擊(而不是點擊特定控件的事件)並計算是否不在特定控件內? – alex 2015-02-10 15:48:52