首页 文章

C# - KeyDown事件,FunctionKeys和TextBox

提问于
浏览
0

这是带有按钮(未显示)和文本框的表单的代码 . 按下功能键以外的任何键都会导致KeyDown事件按预期触发,选择文本框,光标闪烁,后续按键的字符出现在文本框中 . 但是,当按下功能键时,虽然选择了文本框,但光标不会闪烁,并且下一次击键的字符不会出现在文本框中 . 后续击键的字符确实按预期显示 .

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        textBox1.Select();
    }
}

我已经能够通过重写ProcessCmdKey方法来规避这个问题,但我很想知道如何使用KeyDown来完成它 .

谢谢!!

1 回答

  • 1

    目前,正如您所说,读取F [1-12]按键的首选方法是覆盖 ProcessCmdKey 方法 . 但是,允许 KeyDown 处理F键的一种(现已弃用)方法是将表单的 KeyPreview 属性设置为true . 但是,正如您在this帖子中所看到的,这种方法存在缺点,因此使用 ProcessCmdKey 更安全 .

相关问题