簡體   English   中英

窗體會忽略一些鼠標單擊

[英]Form ignores some mouse clicks

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

發生的情況是在主窗體中有時會忽略鼠標單擊。 通常,第一次單擊將被忽略,然后我會說超過一半的未來鼠標單擊將被忽略。 我添加了代碼,以在事件處理程序中觸發MouseUp時通知我,因此我確定未調用事件處理程序。 我還設置了this.Capture = true; 以主要形式顯示,因此我不太確定為什么忽略了一些鼠標單擊。 有什么可能會干擾鼠標單擊?

很多事情都會干擾鼠標單擊,即其他UI元素。

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

如果“頂部”控件不需要用戶輸入,則只需將IsHitTestVisible (或WinForms等效項)設置為false。 如果確實需要用戶輸入,則需要以其他方式捕獲點擊,或者也向每個控件添加“ MouseUp”事件。

有關在Winforms中執行IsHitTestVisible方法,請參見完整表單的Hittest透明度與WPF的IsHitTestVisible等效的 WinForms。 或者,只需使用WPF。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM