文本框属性

时间:2009-09-11 15:46:10

标签: c# .net winforms textbox

我已将Windows窗体应用程序中文本框的MaxLength属性设置为10

我通过读取文件来填充文本框。但是,如果读取字符串超过10个字符,则文本框仍会填充。但是当我手动尝试输入一个字符串时,它工作正常(也就是说,它不允许输入超过10个字符)。

为什么这两种行为有区别?如何从文件中填充文本框并仍然使用MaxLength属性?

谢谢, Viren

4 个答案:

答案 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规范没有就此问题提供任何指导(我可以找到),因此浏览器制造商已经解决了这种问题。

http://www.w3.org/TR/html401/interact/forms.html#h-17.4

答案 3 :(得分:0)

最糟糕的是,当您绑定到文本框时,可以尝试将数据限制为10个字符:

txtMyTextbox.Text = Left(myData, 10)
相关问题