回答
如果您使用的是WinForms
,請使用KeyDown
或KeyUp
事件。
例如,剛落下面的代碼到你的窗體類重寫OnKeyUp
事件和關閉每當用戶按下q鍵:
protected override void OnKeyUp(KeyEventArgs e)
{
if (e.KeyCode == Keys.Q)
{
this.Close();
}
base.OnKeyUp(e);
}
我必須必須處理事件?我打算做的唯一事情是當用戶按下某個鍵時退出。 – olive 2011-02-08 11:23:01
@user:是的,你必須處理事件。 *你在WinForms中做的所有事情都會處理事件。 Windows是一個事件驅動的環境。不知道爲什麼你首先要避免發生事件,但執行此操作的代碼並不複雜。 – 2011-02-08 11:25:08
你在做什麼樣的應用? 窗體? WPF?安慰? 在前兩個鍵盤按鍵事件中,您可以使用Console.Read或ReadLine方法並測試返回值
您可能想在這裏使用KeyPreview和OnKeyPreview,具體取決於控件你在表格上使用嗎?有時,KeyDown和KeyUp將在你有機會自己處理它們之前處理。
順便說一句,對於windows應用程序,使用沒有任何修飾符的'q'鍵退出並不是一個好主意,因爲你可能在表單上有接受輸入的文本框,並且如果有人寫'quebec '進入文本框。
如果您不想使用事件,則覆蓋相同的虛擬方法併爲它們提供實現,以實現您想要的效果。但是,再次,這裏首選的方法是事件。
WinForms,WPF,ASP.NET,....? – 2011-02-08 10:59:03
可能的重複[在winforms中實現鍵盤快捷方式?](http://stackoverflow.com/questions/400113/best-way-to-implement-keyboard-shortcuts-in-winforms) – 2011-02-08 14:01:17