尽管输入了值,为什么textbox.Text为空?

时间:2016-04-16 19:48:51

标签: c# .net

我有一个带有KeyPressEventArgs的文本框。

在对话框中,我可以通过keychar显示在文本框中输入的值,但不能通过textbox.Text成员显示。输入第二个字符后,textbox.Text成员只显示一个字符,第一个字符,依此类推,所以基本上,最后一个字符不会显示。

以下是代码:

private void textBoxDegrees_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == (char)Keys.Back) //The  character represents a backspace
        {

            e.Handled = false; //Do not reject the input
        }
        else
        {
            e.Handled = true; //Reject the input
            return;
        }
        MessageBox.Show(e.KeyChar.ToString());
        MessageBox.Show(textBoxDegrees.Text);
    }

知道发生了什么事吗?

此致 Crouz

2 个答案:

答案 0 :(得分:3)

KeyPressText属性更改之前发生,因此您可以对其进行过滤。也许你想要Changed事件。

答案 1 :(得分:0)

MessageBox.Show(textBoxDegrees.Text);

在输入新值之前,这将在输入中显示您的文本。 如果它包含1234并按5,则会显示1234

您可以使用TextChanged事件处理程序。双击输入时自动生成。