【问题标题】:Winform TextBox can't display textWinform TextBox 无法显示文本
【发布时间】:2012-05-08 20:44:28
【问题描述】:

今天发现TextBox.Text有个奇怪的问题,如果字符串过长,文本框看起来是空的,但实际上我还是可以选择/复制/粘贴,只是看不到字符。

我写了一个小winform测试了一下,发现如果字符串长度超过5460就会出问题。

我使用的是 Win7 64,VS2010。我知道在单行文本框中显示这么大的字符串是没有意义的,但我想知道根本原因。

而且我还注意到在Win2008中没有发生这种情况,即使在Win7中,当我使用屏幕录像机时,问题也消失了!好诡异!

【问题讨论】:

  • 我复制。插入符号仍然有效,但文本不可见。这是一个 Windows 错误。
  • 我也遇到了这个问题 - 有没有人有一个链接可以确认这是一个实际的 Windows 错误?
  • 我有同样的问题(Win7 x64)。不仅文本不可见,另一个问题是Text属性返回截断的文本!
  • Windows 10 20H2 上 2020-12-11 的限制似乎是 43679(可见)和 43680(不可见)。它与字符的宽度无关(尝试使用 i 和 m)。
  • @user1068352:这看起来更像是文本框 MaxLength 属性的错误配置。

标签: c# winforms string


【解决方案1】:

我遇到了同样的错误,设置 multiline true 解决了它。你可以试试这个

<TextBox>.Multiline = true;

【讨论】:

    【解决方案2】:

    你可以做一个 if-checker,它接受一个字符串,检查字符串是否比允许的长。然后,您可以在字符串上运行一个函数,该函数返回一个缩减为所需长度的字符串,最后可能带有 .. 以表明它已被缩短。 也许是这样的:

    public string Truncate(string source, int length)
    {
        if (source.Length > length) 
        {
                source = source.Substring(0, length -2); //-2 because of the ".."
                source += "..";
        }
        return source;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      相关资源
      最近更新 更多