【发布时间】:2011-11-12 02:07:23
【问题描述】:
我目前正在开发一个 Windows 窗体应用程序,我需要一个不会将输入大小限制为 Int32.MaxValue 的文本框。
问题在于MaxLength 是TextBox 上的Int32 属性,我当然不能设置大于该值的数字作为其值。
理想情况下,我根本不想设置任何数字并完全“禁用”此检查。
有什么方法可以让TextBox 不限制输入大小?
【问题讨论】:
我目前正在开发一个 Windows 窗体应用程序,我需要一个不会将输入大小限制为 Int32.MaxValue 的文本框。
问题在于MaxLength 是TextBox 上的Int32 属性,我当然不能设置大于该值的数字作为其值。
理想情况下,我根本不想设置任何数字并完全“禁用”此检查。
有什么方法可以让TextBox 不限制输入大小?
【问题讨论】:
设置为零
Windows NT 4.0、Windows 2000、Windows 2000 专业版、Windows 2000 服务器,Windows 2000 高级服务器,Windows XP 家庭版,Windows XP Professional x64 Edition,Windows Server 2003 平台 注意:如果 MaxLength 属性设置为 0,最大字符数 用户可以输入 2147483646 或基于可用内存的数量, 以较小者为准。
Windows Millennium Edition 平台注意:如果 MaxLength 属性为 设置为 0,用户可以输入的最大字符数是 32,766 或基于可用内存的数量,以较小者为准。
发件人:http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.maxlength.aspx
【讨论】:
TextBox 中粘贴一个巨大的字符串两次时,发生了一些奇怪的事情。出于某种原因,当我进行第二次粘贴时,TextBox 中显示的文本会消失,并且在您按 CTRL+A 并点击删除之前,它不会让您输入更多字符。但是TextBox 中的实际值仍然存在,只是不可见。有没有人遇到过这种情况?
int.MaxValue 小一,所以这并不是真的给出更大的限制。
34464 个字符的字符串,我粘贴了两次。
int.MaxValue 少得多,对吧?
int.MaxValue 的限制无论如何都是一个无法达到的限制。您将无法创建几乎那么长的字符串。换句话说,如果你真的需要超过 231 个字符,那么你遇到的问题比TextBox.MaxLength 更大。
请问您何时认为在单个 GUI 控件中拥有超过 2GB 的 ASCII 文本文件实际上是一种有用的体验?如果您正在寻找一个可以处理大文件的全文编辑器,您可能不想使用TextBox 开头...
编辑:我实际上认为您可能希望设置一个小于int.MaxValue 的限制更小,这是通过测试确定的 - 在您接近之前,您系统的其他部分可能会失败到那个限度。如果你愿意,算出真正的限制是多少,但我保证它会低于int.MaxValue...
【讨论】:
string 来说,这也可能太过分了。