2015-05-14 144 views
-1

我遇到按键事件问题。按键事件无法正常工作

当我在textbox1中输入10位数字时,我需要10位数字。但是现在,如果我按下退格键,它会显示消息“您不能输入超过十位数字”。这是我的第一个问题。

第二个问题是,当我清除textbox1按退格键,现在再次输入数字时,它只需要9位数字。

请告诉我什么是我的代码会错:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (textBox1.Text.Trim().Length > 9) 
    { 
     MessageBox.Show("You can't enter more than ten digits..."); 
     textBox1.MaxLength = 9; 

    } 
} 
+1

你为什么改变输入框的最大长度?第6行的 textBox1.MaxLength = 9; – Jimmy

+3

您应该检查keypress事件中的长度,这是keypress和keydown之后的。 – mggSoft

+0

它只需要9位数,因为您的设置文本框的最大长度为'textBox1.MaxLength = 9;'删除这个以避免第二个问题。 –

回答

1

您可以检查是否KeyChar是退格键:

if (e.KeyChar != '\b' && textBox1.Text.Trim().Length > 9) 
{ 
    e.Handled = true; 
    MessageBox.Show("You can't enter more than ten digits..."); 
} 
+0

感谢这段代码有点帮助。第一个问题就解决了,但第二个问题就是这样。 – Mahaveer

+0

@Mahaveer你删除了这个:* textBox1.MaxLength = 9; *?你也应该在KeyPress事件中调用这段代码。这个对我有用。 –

+0

感谢Vano Maisuradze。但你有没有仔细阅读我的代码。我称之为按键事件。如果我删除maxlength,文本框将采取超过10个数字,我不想 – Mahaveer