在C# 控制台應用程式中處理按鍵事件
在C# 控制台應用程式中,透過按鍵監視使用者輸入對於互動式程序至關重要。出現一個常見問題:我們如何擷取和處理按鍵事件?
錯誤的方法
提供的程式碼片段嘗試使用 PreviewKeyDownEventArgs 事件來監聽按鍵。但是,這種方法對於控制台應用程式來說是不正確的,因為它屬於 Windows 窗體應用程式。
正確方法
要處理控制台應用程式中的按鍵事件,我們可以使用Console 類別的 ReadKey() 方法。此方法等待使用者按下某個鍵並傳回一個 ConsoleKeyInfo 對象,其中包含有關按下的鍵的資訊。
以下是一個捕獲並顯示使用者按下的鍵的範例程式:
public class Program { public static void Main() { ConsoleKeyInfo keyinfo; do { keyinfo = Console.ReadKey(); Console.WriteLine(keyinfo.Key + " was pressed"); } while (keyinfo.Key != ConsoleKey.X); } }
說明
ReadKey() 方法從控制台輸入緩衝區讀取單一按鍵並將其儲存在keyinfo 變數中。 ConsoleKeyInfo 物件的 Key 屬性表示按下的按鍵。
do-while 循環不斷提示使用者輸入,直到按下「X」鍵(退出程式)。每次按下某個鍵時,其值都會顯示在控制台上。
注意:此方法需要控制台應用程式具有焦點。若要擷取系統範圍內的按鍵事件,請考慮使用 Windows 掛鉤,這是一種更先進的技術。
以上是如何在 C# 控制台應用程式中擷取和處理按鍵事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!