天天看點

滑鼠事件滑鼠事件

滑鼠事件

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

開發工具與關鍵技術:Visual Studio 2015

作者:朱海恩

撰寫時間:2019年7月19日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

滑鼠主要幾種事件:

MouseHover:滑鼠懸停在控件時發生

MouseLeave:滑鼠離開控件時發生

MouseEnter:滑鼠進入控件時發生

MouseMove:滑鼠移動過程中重複發生

MouseDown:滑鼠鍵按下時發生

  1. MouseLeftButtonDown:滑鼠左鍵按下時發生
  2. MouseRightButtonDown:滑鼠右鍵按下時發生

MouseUp:滑鼠鍵松開時發生

  1. MouseLeftButtonUp:滑鼠左鍵松開時發生
  2. MouseRightButtonUp:滑鼠右鍵松開時發生

MouseWheel:滑鼠滾輪滾動時發生

想用這些事件時,到屬性中找到對應的屬性,然後在輕按兩下文本框即可用

滑鼠事件滑鼠事件

另外還有Preview+事件,如:PreviewMouseMove等等事件,先于正常的滑鼠事件發生。

滑鼠事件的發生順序:

(1)MouseEnter

(2)MouseMove

(3)MouseHover/MouseDown/MouseWheel

(4)MouseUp

(5)MouseLeave

滑鼠與元件的綁定:

元件名稱.事件名稱+=new System.EventHandler(事件名稱);

OR元件名稱.事件名稱+=new System.MouseEventHandler(事件名稱);

滑鼠事件使用條件:

某些控件的功能增強:TreeView裡面元素的拖動

或者自定義控件的許多功能:flash的時間軸

事件内拖動功能舉例:

(1)獲得MouseDown時position

(2)在 MouseMove中檢查滑鼠左鍵按下情況 和 滑鼠移動情況

如果你的MouseDown不觸發,那麼你可以試試PreviewMouseDown事件。

MouseMove的觸發不是按固定位移量觸發的,(例如:滑鼠滑動選擇元件,若滑鼠移動太快,某些被劃過的元件就不被選擇了),是以某些情況下在MouseMove 裡處理不太可靠。

當滑鼠穿過一個Element時,mousemove會發生很多次,但是mouseenter和mouseleave隻會發生一次,分别在滑鼠進入element區域以及離開element區域是發生。

當處理MouseMove ,MouseEnter,Mouseleave事件時我們還可以擷取正在按下的滑鼠按鍵式哪一個:Leftbutton,middlebutton,RightButton,以及兩個擴充按鍵XButton1和XButton2。(這五個都是MouseEventargs的屬性),他們的值是MouseButtonState枚舉的一個,隻有兩種狀态,Pressed和Released。