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 中的運作方式。

另請參閱