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个字符。