下面是我的整個代碼,沒有其他可能會干擾代碼的形式,類等。我剛剛寫了這個測試。請注意,我知道我有爲什麼KeyDown事件不起作用?
this.KeyPreview = true;
兩次,這是因爲我在查找示例代碼時在兩個地方看到它。代碼編譯沒有錯誤。我也試過這個代碼使用textBox,具有相同的非工作結果。
的e.KeyCode == Keys.Enter
是不起作用的代碼。我還嘗試了其他鍵,如W和A.有人知道我還需要做什麼嗎?使用VS2010。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.KeyPreview = true;
}
private void Form1_Load(object sender, EventArgs e)
{
this.KeyPreview = true;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("True");
}
}
}
}
可以毫不的KeyPreview工作也如果一切是正確的! –
您是否在Form1_KeyDown方法中放置了一個調試器,以查看代碼是否正在執行? –
KeyPreview是一個VB6屬性,它的行爲就像它在VB6時代所做的一樣。這是怪異的,它不會觸發導航鍵的事件。像Enter一樣。只是不要使用它並選擇適當的.NET方式,重寫表單的ProcessCmdKey()方法。 –