gpt4 book ai didi

c# - 带有巨大字符串的文本框被禁用

转载 作者:行者123 更新时间:2023-11-30 19:06:33 24 4
gpt4 key购买 nike

当我输入一个巨大的字符串时,textbox 出现问题。

在我的例子中,文本框是用来写电子邮件地址的,它没有字符数限制。所以,我做了这个测试:我在记事本中写了 200 个电子邮件地址,然后将文本粘贴到 textbox 上,文本消失了,但是如果我改变控件的焦点,文本再次显示。我已经看到了这个link ,但这对我没有帮助。我已经尝试将 MaxLength 属性更改为 0 ( how the microsoft says to do ),但它在这里也不起作用。

考虑一个包含 50 个字符的电子邮件地址,MaxLength 属性不会成为问题,因为 200 个电子邮件地址乘以 50 个字符(每封电子邮件),我将有 10000 个字符,以及 TextBox 的默认值.MaxLength 为 32767。

而且,在您询问代码之前,我只将文本设置为字符串。

myEmailObject.Address = txtEmail.Text;

我应该使用 RichText 还是什么?

最佳答案

这是 Windows EDIT 控件(由 TextBox 类包装的 native 控件)中的一个已知限制。我知道该限制存在于 Windows 7 SP1 和 Windows 8 中,早期版本几乎肯定也有。

一旦您在单行 TextBox 中显示超过 5000 个字符,您就会遇到这个限制。给予或接受,它基于显示文本的总宽度(以像素为单位)。因此,当您使用较小的字体或具有比 W 字符更多的 i 时,您可以容纳更多。 Afaik,当宽度超过 32767 像素时,您将超出限制,这个数字会在 USER32 api 的几个地方弹出,并且可以追溯到 16 位的 Windows 版本 <= 3。保持 EDIT 与主要版本兼容 30 年是一项重大努力。

这个限制并没有经常被测试,在单行文本框中填充那么多字符是不切实际的。没有合理的方法可以让用户在如此小的空间内对如此多的文本做任何有用的事情。不可能阅读它,可靠的编辑肯定是不可能的。

一定要考虑一个更实用和用户友好的用户界面,限制不再是一个问题。使用 Multiline = true 或仅显示使用省略号的占位符字符串。

关于c# - 带有巨大字符串的文本框被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10821504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com