2014-10-16 123 views
0

我正在開發一個winforms項目,在檢測到鼠標單擊時需要顯示文本和圖像,但我遇到了一些問題,我無法始終檢測到鼠標點擊。程序基本概述,首先是主窗體加載,然後用戶加載另一個窗體來設置選項,一旦完成,另一個窗體關閉,主窗體獲得焦點,主窗體應該是接收鼠標輸入一旦檢測到鼠標點擊,就會調用一個函數,它使用ThreadPool.QueueUserWorkItem來播放聲音和顯示圖像窗體忽略一些鼠標點擊

發生什麼事情是鼠標點擊有時在主窗體中被忽略通常第一次點擊被忽略, d說未來鼠標點擊的一半以上將被忽略,我已經添加了代碼來通知我當MouseUp在事件處理程序中觸發時,所以我確定事件處理程序沒有被調用。我還在主窗體中設置了this.Capture = true;,所以我不太確定爲什麼一些鼠標點擊被忽略。有什麼可能干擾鼠標點擊?

+1

我發現有時Mousedown火災和Click或MouseClick不會.. – TaW 2014-10-16 18:17:58

回答

1

的大量東西可以用鼠標點擊,即,其他UI元素干擾。

如果您的事件處理程序位於基本容器控件上,並且它們單擊,例如文本框;那麼文本框會收到點擊事件,而容器不會。

如果您的「頂部」控件不需要用戶輸入,您可以簡單地將IsHitTestVisible(或與WinForms等效)設置爲false。如果您需要需要用戶輸入,則需要以不同的方式捕獲點擊,或向每個控件添加「MouseUp」事件。

請參閱Hittest transparency for an entire formWinForms equivalent of WPF's IsHitTestVisible 要在Winforms中執行的方法IsHitTestVisible。另外,只需使用WPF。

相關問題