2011-02-08 55 views
0

如何接受按鍵?例如,如果用戶按q,我想退出該應用程序。如何接受WinForms應用程序中的擊鍵?

我該如何去做這件事?我正在使用WinForms。

+5

WinForms,WPF,ASP.NET,....? – 2011-02-08 10:59:03

+0

可能的重複[在winforms中實現鍵盤快捷方式?](http://stackoverflow.com/questions/400113/best-way-to-implement-keyboard-shortcuts-in-winforms) – 2011-02-08 14:01:17

回答

2

如果您使用的是WinForms,請使用KeyDownKeyUp事件。

例如,剛落下面的代碼到你的窗體類重寫OnKeyUp事件和關閉每當用戶按下q鍵:

protected override void OnKeyUp(KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Q) 
    { 
     this.Close(); 
    } 

    base.OnKeyUp(e); 
} 
+0

我必須必須處理事件?我打算做的唯一事情是當用戶按下某個鍵時退出。 – olive 2011-02-08 11:23:01

+1

@user:是的,你必須處理事件。 *你在WinForms中做的所有事情都會處理事件。 Windows是一個事件驅動的環境。不知道爲什麼你首先要避免發生事件,但執行此操作的代碼並不複雜。 – 2011-02-08 11:25:08

1

你在做什麼樣的應用? 窗體? WPF?安慰? 在前兩個鍵盤按鍵事件中,您可以使用Console.Read或ReadLine方法並測試返回值

0

您可能想在這裏使用KeyPreview和OnKeyPreview,具體取決於控件你在表格上使用嗎?有時,KeyDown和KeyUp將在你有機會自己處理它們之前處理。

順便說一句,對於windows應用程序,使用沒有任何修飾符的'q'鍵退出並不是一個好主意,因爲你可能在表單上有接受輸入的文本框,並且如果有人寫'quebec '進入文本框。

如果您不想使用事件,則覆蓋相同的虛擬方法併爲它們提供實現,以實現您想要的效果。但是,再次,這裏首選的方法是事件。