gpt4 book ai didi

c# - 无法捕获回车键

转载 作者:行者123 更新时间:2023-11-30 17:12:27 24 4
gpt4 key购买 nike

我有一个简单的表单来接受输入:

12 个按钮,1 个文本框(禁用且只读)

enter image description here

这是我处理输入的方法

Login_KeyDown() 是我为每个 UI 组件和表单本身的所有 KeyDown 调用的常用方法。

private void Login_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
Application.Exit();
}
else if (e.KeyCode == Keys.NumPad9 || e.KeyCode == Keys.D9)
{
button3.BackgroundImage = Properties.Resources.button_hover;
button3.ForeColor = Color.White;
pin.Text = pin.Text + "9";
}
else if (e.KeyCode == Keys.Back)
{
button11.BackgroundImage = Properties.Resources.button_hover;
button11.ForeColor = Color.White;
if (pin.Text.Length > 0)
pin.Text = pin.Text.Substring(0, pin.Text.Length - 1);
}
else if (e.KeyCode == Keys.Enter)
{
MessageBox.Show(pin.Text);
}
}

此代码在我启动应用程序时工作正常,但在我单击任何组件后,其余代码工作正常但“输入关键条件”不起作用。

我的猜测是因为“输入关键条件”不适用于 UI 组件或类似的东西。

我也尝试过使用 “按键事件”,它使用 KeyPressEventArgs 然后检查 KeyChar == 13 但这也不起作用。

问题是什么,我该如何解决?

附注我没有为任何按钮设置任何按钮点击事件,该应用程序是 100% 基于 KBoard 的。

最佳答案

查看 PreviewKeyDown。 Return 在按钮控件上引发该事件。

    private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Return)
MessageBox.Show("I found return");

}

或者您可以强制它在 KeyDown 事件中使用以下特殊键:

    private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Return)
e.IsInputKey = true;
}

更多信息:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.previewkeydown.aspx

关于c# - 无法捕获回车键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10641721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com