TextBox.Keypress不响应返回键

时间:2013-09-02 00:52:44

标签: c# textbox keydown

我有一个带有各种文本框的表单。一个文本框用于输入浮点数,因此我使用TextBox.KeyPress依次处理每个数字,这只会修改Text属性。文本由按下OK按钮id时(在关闭表单之前)调用的例程处理。它也由TextBox.Leave事件调用。但是,如果我更改文本框的内容,则按Return to variable不会更新。

我以为我可以通过以下方式解决这个问题:

    private void DestPointNoTextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Return)
        {
            prvUpdateDestPointNo();
        }
    }

只要在文本框处于焦点时按下某个键,就会调用此方法,这可以通过在其中设置断点来证明。但是,按下Return键时不会调用它。

有人可以解释在按下Return键时我如何确保处理新文本?  如果我更改了其中的内容,请单击“确定”按钮新的

2 个答案:

答案 0 :(得分:1)

如果您使用的是Windows窗体应用程序,则可以将窗体的AcceptButton属性设置为“确定”按钮,按Enter /返回键时将触发“确定”按钮的“单击”事件

答案 1 :(得分:1)

我会使用调试器在运行时确定e.KeyCode的值。

为什么呢?

当我运行类似的代码(Winforms TextBox,KeyDown注册)时,e.KeyCode的值是

e.KeyCode = LButton | MButton | Back

您可以使用的KeyEventArgs的另一个属性是KeyValue -

private void DestPointNoTextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyValue == 13)
    {
        prvUpdateDestPointNo();
    }
}