【问题标题】:TextBox not containing "\r\n" strings文本框不包含“\r\n”字符串
【发布时间】:2013-10-30 17:16:02
【问题描述】:

我有一个程序需要确定多行文本框中的行数才能知道如何处理它。我正在调用 TextBox.Lines.Length 属性,它正在工作。然而,现在无论在 GUI 中可见多少行文本,该值都是 1,并且所有“\r\n”字符串都从 TextBox.Text 字符串中消失了。有任何想法吗?我的代码如下:

TextBox.MultiLine = true;
TextBox.WordWrap = true;
for (int i = 0; i < TextBox.Lines.Length - 1; i++)
    //Some Code

【问题讨论】:

  • 如果没有更多详细信息,任何人都无法诊断此问题,包括至少查看您拥有的代码。
  • Web 还是 winforms?贴一些代码,让我们看看发生了什么。
  • WordWrap (WinForm) 或TextWrapping (WPF) 有什么关系?
  • 只是一个疯狂的猜测:试试myTextbox.Multiline = true;。见msdn.microsoft.com/en-us/library/12w624ff.aspx
  • 这是一个winforms应用程序。代码的哪一部分有用?

标签: c# winforms textbox


【解决方案1】:

正如我在评论中所说,使用Multiline=TrueWordWrap=True,您的文本框将显示一长行作为多行(已换行)...但实际上它是单行,这就是您的Lines.Length=1 的原因,尝试自己输入一些换行符,然后再次测试。或者你可以设置WordWrap=False,你会看到只有一行...

【讨论】:

  • 我想这是另一个问题?我现在要走了,但是您可以检查字符宽度之类的内容,并在达到限制时插入换行符(例如您的文本框的宽度)
【解决方案2】:

它需要被标记为多行,检查一下,你可以像这样解析:

string txt = TextBox1.Text;
string[] lst = txt.Split(new Char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries)

【讨论】:

  • 我想它不会起作用,因为那甚至没有意义。使用我上面发布的代码?如果您看不出它如何适合您自己的代码,请提供代码示例以便我们提供帮助。
猜你喜欢
  • 2013-11-30
  • 1970-01-01
  • 2011-05-29
  • 2013-12-20
  • 2016-03-26
  • 1970-01-01
  • 2015-03-26
  • 2021-03-04
  • 2021-12-26
相关资源
最近更新 更多