C# 文本框被一个巨大的字符串禁用
当一个C# 文本框被一个巨大的字符串禁用,c#,winforms,textbox,C#,Winforms,Textbox,当一个文本框键入一个巨大的字符串时,我遇到了一个问题 在我的例子中,文本框用于写电子邮件地址,并且没有字符限制。所以,我做了这个测试:我在记事本上写了200个电子邮件地址,我把文本粘贴在文本框上,文本消失了,但是如果我改变控件的焦点,文本会再次显示。我已经看过了,但对我没有帮助。我已经尝试将MaxLength属性更改为0(),但在这里也不起作用 考虑到一个50个字符的电子邮件地址,MaxLength属性不会有问题,因为200个电子邮件地址乘以50个字符(每封电子邮件),我将有10000个字符,默
文本框键入一个巨大的字符串时,我遇到了一个问题
在我的例子中,文本框用于写电子邮件地址,并且没有字符限制。所以,我做了这个测试:我在记事本上写了200个电子邮件地址,我把文本粘贴在文本框上,文本消失了,但是如果我改变控件的焦点,文本会再次显示。我已经看过了,但对我没有帮助。我已经尝试将MaxLength
属性更改为0(),但在这里也不起作用
考虑到一个50个字符的电子邮件地址,MaxLength属性不会有问题,因为200个电子邮件地址乘以50个字符(每封电子邮件),我将有10000个字符,默认值TextBox.MaxLength
为32767
在您询问代码之前,我只将文本设置为字符串
myEmailObject.Address=txtEmail.Text代码>
我应该使用RichText
,还是什么?尝试将Multiline属性设置为True并增加textbox的高度这是Windows编辑控件(由textbox类包装的本机控件)中的已知限制。我知道Windows7SP1和Windows8中存在这种限制,早期版本几乎肯定也存在这种限制
一旦在单行文本框中显示超过5000个字符,您将执行此限制。给定或获取,它基于显示文本的总宽度(以像素为单位)。因此,当您使用较小的字体或比W
字符多得多的i
字符时,您可以容纳更多的字符。好了,当宽度超过32767像素时,你就会超出限制,这个数字在User32API中的一些地方会弹出,可以追溯到Windows版本谢谢,是的,我正在Windows 7SP1中测试,但在这个版本中不正确。顺便说一句,我同意你的观点,在这么小的空间里有很多文本,但这是一个测试用例,测试人员必须测试包含200个电子邮件地址的文本框。是的,它失败了,我正在尝试修复这个错误:/将这些地址加载到CSV上,然后在你的程序上解析,这不是更有效吗?为什么要在一个文本框上写这么多may地址?@ShiinZu哈哈,我也不知道。有很多其他的方法可以做到这一点,但我的老板希望这样。是的,在一个奇怪的请求背后,99%的时间都有老板在某处要求它……好吧,它成功了。谢谢,但我的控制力很小,我不能这样做。因此,我只是将TextBox.MaxLength
属性设置为6000个字符。