keydown事件无法获得确切的长度

时间:2016-09-26 08:57:08

标签: c# winforms

我想问一下,当我使用事件keydown计算文本的长度时,它并不匹配。但当我按回车键或退格键时,它变为declare var require: NodeRequire;。 有没有办法让它从9开始计数,而不是1

我使用的代码

0

enter image description here

2 个答案:

答案 0 :(得分:5)

您必须在Key_Up事件中尝试相同的操作。

private void textEdit1_KeyUp(object sender, KeyEventArgs e)
{
    if (this.textEdit1.Text.Length == 10)
    {
        textEdit2.Text = textEdit1.Text;                
        this.textEdit1.Text = "";

    }
    label2.Text = textEdit1.Text.Length.ToString();
    label1.Text = textEdit2.Text.Length.ToString();
}

因为Key_Down会在按下按键时以及在释放按键之前执行。

另一方Key_Up将在您在键盘上释放键后执行,因此键入的字符将出现在文本框中,您将获得所需的结果。

答案 1 :(得分:0)

问题是,在更新Text-property之前引发了KeyDown事件。如果您在处理密钥后需要文本的长度,则需要订阅另一个事件,例如框TextChanged。