首頁 >後端開發 >C++ >如何在 C# 控制台應用程式中擷取和處理按鍵事件?

如何在 C# 控制台應用程式中擷取和處理按鍵事件?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 12:38:40839瀏覽

How Do I Capture and Process Key Press Events in C# Console Applications?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn