2009-09-15 110 views
1

我有一個應用程序,用ShowDialog方法打開一個模態窗體。 一旦顯示此表單,即使光標在表單之外,我也想捕獲鼠標移動。 如何捕捉鼠標移動?我看到了一些有關Capture屬性的內容,但我無法設法使其工作。鼠標移動捕獲

[編輯]

我想如果表單以外的鼠標移動通知。

回答

2

Capture屬性是正確的方法,但有一些限制。只有

  • 前臺窗口捕獲鼠標
  • 鼠標捕獲可以由系統
  • Win32 API函數SetCapture的其他部分被禁止被重置每次「鼠標」事件occours。我認爲這也適用於.NET。

查看Captureremarks section屬性。

當鼠標被捕獲時,你會收到通常的事件,但具有更寬的鼠標座標範圍(例如負的X位置,如果鼠標左攝像控制的)

鼠標捕獲是脆弱,因爲它是全球性的。檢查是否有其他方式來處理某些事件。您的情況下,MouseLeaveMouseEnter事件可能已足夠。

+0

只有當光標懸停在某個應用程序表單上時纔會執行捕獲,但這對我來說可以。 我在Load事件後設置了Capture。 – 2009-09-15 10:57:30