winform/窗體鼠標事件編程中的幾個問題


1.進行.net窗體的開發,經常用到鼠標事件,如MouseDown/MouseUp/MouseMove/MouseClick等。可是有時候給控件添加鼠標事件,就是不響應,怎么辦呢!

 答案:1.控件是否可見,即不能被子控件遮擋,若已經被遮擋,可以在子控件中將鼠標事件調用父控件的OnMouseMove等方法對父控件的鼠標事件進行重寫

          2.嘗試在MouseEnter事件中將控件設置為輸入焦點(Focus試試)

2.MouseDown、MouseMove、MouseUp三個事件是如何響應的?

  答案:經測試發現

           1.當控件可以響應鼠標事件時,第一次MouseDown/MouseMove事件的產生必須是鼠標作用於控件,鼠標位於控件的可見部分。

           2.一旦MouseDown作用於控件后,控件總能響應MouseMove/MouseUp事件,即使鼠標指針不在控件上方甚至離開了窗體。通過這點,你就知道該怎樣實現控件改變大小,窗體改變大小等類似的功能了。

3.怎樣實現鼠標單雙擊事件共存?

答案:

       鼠標雙擊事件一定會產生單擊事件,所以最好不要單雙擊共存。必須要使用的話,可以在單擊事件中啟動一個計時器Timer,捕獲雙擊事件是否發生,在鼠標雙擊最大時間間隔后仍未發生雙擊事件則必定為單擊事件。所以這樣一來,單擊事件的判斷會很慢,雙擊事件的判定比較快。

4.鼠標事件的參數 MouseEventArgs中的X/Y是啥意思?

  這個X/Y指的是鼠標事件產生的位置,相對於事件源(控件)的位置,X表示距離控件左上頂點的橫向坐標,Y表示距離控件左上頂點縱向坐標。

 

5.怎樣用代碼觸發鼠標事件?

  使用windows函數 mouse_event,具體怎么使用,見我的博文。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM