共用方式為


Windows Form 應用程式中的使用者輸入

在 Windows Forms 中,使用者輸入會以 Windows 訊息的形式傳送至應用程式。 有一系列的可覆寫方法會在應用程式、表單和控制層級處理這些訊息。 這些方法在接收到滑鼠和鍵盤訊息時就會引發事件,而這些事件經處理後將可取得滑鼠或鍵盤輸入的相關資訊。 在許多情況下,Windows Forms 應用程式只要處理這些事件,就能處理所有使用者輸入。 在其他情況下,應用程式可能需要覆寫處理訊息的其中一種方法,以在應用程式、表單或控制項接收到特定訊息之前加以攔截。

滑鼠和鍵盤事件

所有 Windows Forms 控制項都會繼承一組與滑鼠和鍵盤輸入相關的事件。 例如,控制項可處理 KeyPress 事件以確認按下按鍵的字元碼,或者,控制項可處理 MouseClick 事件以確認點按滑鼠的位置。 如需滑鼠和鍵盤事件的詳細資訊,請參閱使用鍵盤事件Windows Forms 中的滑鼠事件

處理使用者輸入訊息的方法

表單和控制項可以存取 IMessageFilter 介面和一組可覆寫的方法,以處理訊息佇列中不同點位的 Windows 訊息。 這些方法都有 Message 參數,會封裝 Windows 訊息的低階詳細資料。 您可以實作或覆寫這些方法以檢查訊息,然後取用訊息或將其傳遞給訊息佇列中的下一個取用者。 下表顯示處理 Windows Forms 中所有 Windows 訊息的方法。

方法 注意
PreFilterMessage 此方法會攔截已在應用層級排入佇列 (也稱為已發佈) 的 Windows 訊息。
PreProcessMessage 此方法會在 Windows 訊息進行處理之前,在表單和控制項層級加以攔截。
WndProc 此方法會在表單和控制項層級處理 Windows 訊息。
DefWndProc 此方法會在表單和控制層級執行 Windows 訊息的預設處理。 這會提供視窗的基本功能。
OnNotifyMessage 此方法會在訊息進行處理之後,在表單和控制項層級加以攔截。 必須設定 EnableNotifyMessage 樣式位元,才能呼叫此方法。

鍵盤和滑鼠訊息也會由一組額外的、前述訊息類型特有的可覆寫方法進行處理。 如需詳細資訊,請參閱鍵盤輸入的運作方式滑鼠輸入在 Windows Forms 中的運作方式

另請參閱