C# 按键时文本框工作不正常
如果我第一次输入10位数字,则需要10位数字,但如果我使用退格键清除textbox1并再次输入,则只需要9位数字。它应该是10位数,因为我已经设置了textbox1。maxlength=9意味着它应该是10位数(0到9)C# 按键时文本框工作不正常,c#,C#,如果我第一次输入10位数字,则需要10位数字,但如果我使用退格键清除textbox1并再次输入,则只需要9位数字。它应该是10位数,因为我已经设置了textbox1。maxlength=9意味着它应该是10位数(0到9) MaxLength是字符的文字量,即MaxLength为9的索引范围为0-8。将MaxLength设置为10。MaxLength用于计算字符串中字符的文字量,因此将MaxLength设置为9将计0-8,因为0计为文字字符 您的解决方案是将MaxLength设置为10。只有当Ma
MaxLength是字符的文字量,即MaxLength为9的索引范围为0-8。将MaxLength设置为10。MaxLength用于计算字符串中字符的文字量,因此将MaxLength设置为9将计0-8,因为0计为文字字符
您的解决方案是将MaxLength设置为10。只有当MaxLength设置为9时,它才会计为10。如果将其设置为9,则最多只能计算9位数字。这意味着0到8
MaxLength
与数字计数无关。这与字符串的长度有关,您的问题不明确。有几点需要注意:1)如果在键入10个“数字”之前MaxLength为10,则在进行此类编辑后,将其减少到9。2) 您使用的不是“数字”,而是“代码单位”。如果用户输入“è”(仅举个例子),它将使用两个System.Char(度量.NET字符串长度的单位)。3) 按键操作会干扰很多/大多数时间。为什么不使用MaskedTextBox
而不是普通的TextBox
?@HarveySpecter我猜你想写“只有当MaxLength设置为10时,它才会计数到10。如果设置为9,它最多只能计数到9个字符。这意味着0到8”可以节省一些精力。养成阅读评论的好习惯。:)这真的应该是一个评论,它不能解决op的“问题”,但我不知道他们的问题到底是什么Jacob根据你的说法,MaxLength为9的数字是0-8。比我第一次输入数字时所需的10位数还要多。@Mahaveer因为您在错误的位置设置了MaxLength,所以请在文本框的属性中设置MaxLength。这只是Jacob的抄袭answer@Sayse我很抱歉,我当时正在写,所以页面没有刷新,我看不到他的answer@Sayse这远远不是逐字逐句的复制。。。不要仓促行事,原因很相似,因为这是问题的答案,我们都解释了MaxLength的功能,并解释了为什么将它设置为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;
}
}