以下是带有按钮(未显示)和文本框的表单的代码。按下功能键以外的任何键都会导致KeyDown事件按预期触发,选择文本框,光标闪烁,后续按键的字符出现在文本框中。但是,当按下功能键时,虽然选择了文本框,但光标不会闪烁,并且下一次击键的字符不会出现在文本框中。后续按键的字符确实按预期显示。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
textBox1.Select();
}
}
我已经能够通过覆盖ProcessCmdKey方法来解决这个问题,但我很想知道如何使用KeyDown。
谢谢!
答案 0 :(得分:1)
现在,正如您所说,阅读F [1-12]按键的首选方法是覆盖ProcessCmdKey
方法。但是,允许KeyDown
处理F键的一种(现已弃用)方法是将表单的KeyPreview
属性设置为true。但是,正如您在this帖子中所看到的,此方法存在缺点,因此使用ProcessCmdKey
更安全。