这段代码检测大多数密钥并将其放入messageBox中,但其中一个密钥不是输入密钥。 *请注意,它是 key_down 方法
MessageBox.Show(e.KeyData.ToString());
到目前为止,我已经尝试了很多方法来修复和搜索很多答案 我试过这个
private void button1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("this is it");
e.IsInputKey = true;
}
}
它说0个引用我知道我没有调用该方法但我在哪里调用它? 无论我在哪里打电话,都会出错。
答案 0 :(得分:3)
删除此行
e.IsInputKey = true;
private void button1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("this is it");
//e.IsInputKey = true;
}
}
或
private void button1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("this is it");
//e.IsInputKey = true;
}
}
答案 1 :(得分:2)
在Form1设计属性中:
AcceptButton
属性设置下拉为button1
或您Button
的名称
按钮的KeyUp事件
private void button1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter key has been pressed");
}
}
或
private void button1_KeyUp(object sender, KeyEventArgs e)
{
button1_KeyDown(sender, e);
}
private void button1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter key has been pressed");
}
}
答案 2 :(得分:0)
在此之后不久放置此行:InitializeComponents();
- >
button1.PreviewKeyDown +=new PreviewKeyDownEventHandler(button1_PreviewKeyDown);
。
您尝试使用的事件只会在您专注于该按钮时触发。重点是以两种不同的方式传递(通过用户交互),其中一种是实际鼠标点击该元素,另一种是“标签”到控件,并确保您阅读“事件”和“EventsHandlers”