【问题标题】:Replacing new lines with semi colons in String from RichTextBox - vb.net用 RichTextBox 中的 String 中的分号替换新行 - vb.net
【发布时间】:2018-07-13 21:16:15
【问题描述】:

我有一个 RichTextBox,用户将在其中输入产品条形码,并将其分隔到新行上。

然后我想获取文本并将其传递给字符串,但用分号替换新行以分隔它们。

 Dim products As String = txt_distributorProducts.Text

我可以使用.Replace() 方法并将“\n”替换为“;”吗?或者这行不通。

感谢您的帮助。

【问题讨论】:

  • 我的想法是正确的,但是我需要使用 ControlChars.Lf 而不是 "\n"
  • 是的,你可以使用它。
  • 是的,"\n" 在 VB 中没有特殊含义,因为 VB 不支持将反斜杠作为转义字符。这在 C# 中可以工作。
  • String.Join(";", txt_distributorProducts.Lines)

标签: vb.net richtextbox


【解决方案1】:

RichTextBox 有一个Lines 属性,它返回控件中所有行的数组。只需使用所需的胶水加入阵列:

Dim products As String = String.Join(";", txt_distributorProducts.Lines)

另外,你不能像在 C# 中那样在 Visual Basic .NET 中使用转义字符串。 Visual Basic 中的 \n 等效项是 Environment.NewLine

【讨论】:

  • 这不等同,对于 RTB 来说很重要,因为它使用 \n 而不是 \r\n 作为行分隔符。 VB.NET 有 vbLf 作为一个方便的常量。
  • @HansPassant 一般来说,Environment.NewLine 是正确的等价物。但是您是正确的,因为 RTB 需要 LineFeed 字符。但是,我不同意使用任何暴露 Microsoft.VisualBasic 命名空间的东西,而是使用与 Convert.ToChar(10) 等效的 .NET。
  • 嗯,在 VB.NET 程序中使用 Microsoft.VisualBasic 并没有错。这是不可避免的。
  • 我想每个人都是自己的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 2013-03-22
相关资源
最近更新 更多