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 中的運作方式。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應