我有一個應用程序,用ShowDialog方法打開一個模態窗體。 一旦顯示此表單,即使光標在表單之外,我也想捕獲鼠標移動。 如何捕捉鼠標移動?我看到了一些有關Capture屬性的內容,但我無法設法使其工作。鼠標移動捕獲
[編輯]
我想如果表單以外的鼠標移動通知。
我有一個應用程序,用ShowDialog方法打開一個模態窗體。 一旦顯示此表單,即使光標在表單之外,我也想捕獲鼠標移動。 如何捕捉鼠標移動?我看到了一些有關Capture屬性的內容,但我無法設法使其工作。鼠標移動捕獲
[編輯]
我想如果表單以外的鼠標移動通知。
Capture
屬性是正確的方法,但有一些限制。只有
SetCapture
的其他部分被禁止被重置每次「鼠標」事件occours。我認爲這也適用於.NET。查看Capture
的remarks section屬性。
當鼠標被捕獲時,你會收到通常的事件,但具有更寬的鼠標座標範圍(例如負的X位置,如果鼠標左攝像控制的)
鼠標捕獲是脆弱,因爲它是全球性的。檢查是否有其他方式來處理某些事件。您的情況下,MouseLeave
或MouseEnter
事件可能已足夠。
可以讀取光標的位置,使用Cursor.Position物業,看到Cursor.Position
您可以只使用靜態屬性Control.MousePosition。
只有當光標懸停在某個應用程序表單上時纔會執行捕獲,但這對我來說可以。 我在Load事件後設置了Capture。 – 2009-09-15 10:57:30