多個按鍵這是我的計劃:檢測在C#
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
points++;
textbox1.Text = points.ToString();
textbox1.Refresh();
}
我想要的方案,以提高變量每次按一個鍵,它並不重要哪一個。
現在我的程序甚至沒有開始事件,當我按下一個鍵,所以我不知道該怎麼做。
多個按鍵這是我的計劃:檢測在C#
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
points++;
textbox1.Text = points.ToString();
textbox1.Refresh();
}
我想要的方案,以提高變量每次按一個鍵,它並不重要哪一個。
現在我的程序甚至沒有開始事件,當我按下一個鍵,所以我不知道該怎麼做。
試試這個:
protected override void WndProc(ref Message m)
{
const int WM_KEYDOWN = 0x100;
const int WM_KEYUP = 0x101;
if(m.Msg == WM_KEYDOWN || m.Msg == WM_KEYUP){
points++;
textbox1.Text = points.ToString();
textbox1.Refresh();
}
base.WndProc(ref m);
}
你試過了嗎?我做了,它不起作用。見[這個答案](http://stackoverflow.com/questions/20408071/form-wm-keydown-and-wm-keyup-messages-arent-captured-in-wndproc) – Pikoh
我嘗試過,併爲我的情況。很難理解爲什麼@傑克爾塔只能通過他的代碼和描述來判斷問題。 –
嘗試改變窗體的'KeyPreview'真 – Pikoh
嘗試重寫的WndProc和趕上包含關鍵infromation –
當選擇你的形式,將只檢測按鍵的每封郵件。您也不需要刷新文本框。 – Brandon