在按键文本框上工作不正常

时间:2015-05-14 10:32:14

标签: c#

如果我第一次输入10位数它需要10位数但是如果我使用退格键清除textbox1并再次输入它只需要9位数。它应该取10位数,因为我已经设置了textbox1.maxlength = 9意味着它应该计算10位数(0到9)。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
 if (e.KeyChar != '\b' && textBox1.Text.Trim().Length > 9)
        {

            e.Handled = true;
            MessageBox.Show("You can't enter more than ten digits...");
            textBox1.MaxLength = 9;
        }
}

2 个答案:

答案 0 :(得分:0)

MaxLength是字面量的字符数,即MaxLength为9的索引范围为0-8。将MaxLength设置为10.

答案 1 :(得分:0)

MaxLength用于计算字符串中字符的字符数,因此将MaxLength设置为9将计为0-8,因为0计为字面字符。

您的解决方案是将MaxLength设置为10.