我已将Windows窗体应用程序中文本框的MaxLength属性设置为10
我通过读取文件来填充文本框。但是,如果读取字符串超过10个字符,则文本框仍会填充。但是当我手动尝试输入一个字符串时,它工作正常(也就是说,它不允许输入超过10个字符)。
为什么这两种行为有区别?如何从文件中填充文本框并仍然使用MaxLength属性?
谢谢, Viren
答案 0 :(得分:4)
来自TextBoxBase.MaxLengthProperty规范:
在代码中,可以将Text属性的值设置为长度大于MaxLength属性指定的值的值。此属性仅影响在运行时输入到控件中的文本。
换句话说,从数据源提取时,必须限制代码中的文本量。
例如:
string text = "The quick blue smurf jumped over the brown fox.";
textBox1.Text = text.Substring( 0, textBox1.MaxLength );
答案 1 :(得分:1)
完全依赖于值的即时验证永远不是明智之举 - 您应该始终验证最终值。例如,我见过人们经常使用KeyUp / KeyDown / KeyPress事件来禁止各种角色,然后忘记了人们经常使用复制粘贴(这取消了预期的验证)。
答案 2 :(得分:0)
你必须以编程方式限制它。这就是浏览器对待HTML的方式。对不起:(
不幸的是,HTML规范没有就此问题提供任何指导(我可以找到),因此浏览器制造商已经解决了这种问题。
答案 3 :(得分:0)
最糟糕的是,当您绑定到文本框时,可以尝试将数据限制为10个字符:
txtMyTextbox.Text = Left(myData, 10)