C# 鼠標事件


3.20 鼠標事件
從類 System.Windows.Forms.Control 派生的控件都有鼠標事件,控件的 Click 事件本質
上也是鼠標事件。一些控件還有單獨的鼠標事件,例如 Form。鼠標事件有:

? MouseDown:如果鼠標位於控件區域,按下鼠標按鍵時產生該事件。

? MouseUp:如果鼠標位於控件區域,抬起鼠標按鍵時產生該事件。

? MouseMove:如果鼠標在控件區域移動,產生該事件。

? MouseEnter:鼠標進入控件區域,產生該事件。

? MouseLeave:鼠標離開控件區域,產生該事件。

鼠標事件處理函數一般有兩個參數:

第一個參數 (object sender) 是產生該事件的對象的屬性 Name的值,

例如,為 Form1 的 MouseDown 事件增加事件函數,

單擊 Form1,第一個參數 sender 代表 Form1對象。

(MouseEventArgs e)是事件處理函數第二個參數,

代表事件的一些信息,事件不同, 所代表的信息也不相同,

鼠標按下事件處理函數中,

e.X 為發生事件時鼠標位置的 x坐標,e.Y為發生事件時鼠標位置的 y 坐標,

e.Button為 MouseButtons.Left , 表示單擊了鼠標左鍵等等,

Right 和 Middle 則分別代表右鍵和中間鍵。

e.Clicks 為鼠標單擊的次數,如果大於 2 次,則為雙擊。

例子 e3_12:

在窗體中的指定區域, 雙擊鼠標左鍵, 用 Label 控件顯示雙擊鼠標的位置。

指定區域的左上角坐標為 (20,20),寬為 200,高為 200。

(1) 建立一個新項目。放 Label 控件到窗體。屬性 Name=label1。

(2) Panel 控件 可以將 窗體分 為多個 區域。 放 Panel 控件 到窗體 ,屬性 Location.X=20 ,
Location.Y=20 ,屬性 Width=200,Height=200 ,屬性 Name=p1。

(3) 為 Panel 的 MouseDown 事件增加事件函數如下:
private void p1_MouseDown( object sender,System.Windows.Forms.MouseEventArgs e)
{ if(e.Button==MouseButtons.Left&&e.Clicks>1)// 如果是雙擊左鍵
label1.Text="X:"+e.X.ToString()+",Y:"+e.Y.ToString();
}

(4) 編譯,運行,分別在指定區域和區域外雙擊鼠標左鍵,看一下效果。分別在指定區域和
區域外雙擊鼠標右鍵,看一下效果。


免責聲明!

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



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