我有一个带有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
答案 0 :(得分:3)
KeyPress
在Text
属性更改之前发生,因此您可以对其进行过滤。也许你想要Changed
事件。
答案 1 :(得分:0)
MessageBox.Show(textBoxDegrees.Text);
在输入新值之前,这将在输入中显示您的文本。
如果它包含1234
并按5
,则会显示1234
。
您可以使用TextChanged
事件处理程序。双击输入时自动生成。