如何在VB msgbox()中使用\ n新行…?


Answers:


91
  • 对于VB: vbCrLfvbNewLine
  • 对于VB.NET: Environment.NewLinevbCrLfConstants.vbCrLf

VB.NET新行上的信息:http : //msdn.microsoft.com/zh-cn/library/system.environment.newline.aspx

有关信息Environment.NewLine来自Cody GrayJ Vermeire


9
不要vbCrLf用于VB.NET代码!只是为了与移植的VB 6应用程序兼容。Environment.NewLine如J. Vermeire的答案中所建议,您应该改用它。
科迪·格雷

我同意您的观点,应该使用Environment.NewLine,但是因为它是跨平台的。对于Window,它返回\ r \ n,对于基于unix / linux的平台,它仅返回\ n。
Fun Mun Pieng

是的,这是使用它的很好理由。考虑到CLR的替代实现(例如Mono)支持VB.NET,因此编写代码时要考虑平台独立性,这是一个好主意。除此之外,采用标准的.NET Framework习惯用法(而不是为了向后兼容目的而进行的保持)始终是一个好主意。任何VB.NET程序员都会犯的最大错误是,假设它与VB 6是相同的语言真正的面向对象只是刮擦差异的表面。假装否则会使自己不公正。
科迪·格雷

2
投反对票,因为它对我不起作用。在VB宏中调用EditPoint.Insert(vbNewLine)将插入\ r \ n。vbLf是对所提问题的正确答案。
塞缪尔

25

尝试使用vbcrlf换行符

msgbox "This is how" & vbcrlf & "to get a new line"

该示例值得赞赏,因为我不使用VB,也不知道连接格式。显然,不能在双引号中解释它们。
蒂姆·莫顿

23

这些是创建新行的字符序列:

  • vbCr 是回车符(返回到行首),

  • vbLf 是换行符(转到下一行)

  • vbCrLf 是回车/换行符(类似于按Enter键)

我更喜欢vbNewLine它是系统独立的vbCrLf在某些系统上可能不是真正的新产品)


@Andrew-在大学期间,我在vb中进行编程时
Pranay Rana

1
从理论上讲,我想你是对的。但是在我见过的每个实现中,vbNewLine都简单定义为vbCrLf。没有任何区别。
Cody Gray

我什么也不会改变。我同意你的方式。我想vbNewLine更清楚地表达您的意图。显然是为了插入新行而设计的。我只是提供辅助评论。他们在“内幕”下做同样的事情。这样的实现细节不应泄漏到您的代码中。
Cody Gray



5

Environment.NewLine的替代方法是使用:

Regex.Unescape("\n\tHello World\n")

来自System.Text.RegularExpressions

这使您可以像在C#,C,java中一样在不连接字符串的情况下转义Text



2

使用命令“ vbNewLine”

Hello & vbNewLine & "World"

将在一行上显示为Hello,在另一行上显示World


1

您也可以使用回车符(Chr(13)),换行符(Chr(10))

MsgBox "Message Name: " & objSymbol1.Name & Chr(13) & "Value of BIT-1: " & (myMessage1.Data(1)) & Chr(13) & "MessageCount: " & ReceiveMessages.Count

1
Module MyHelpers
    <Extension()>
    Public Function UnEscape(ByVal aString As String) As String

       Return Regex.Unescape(aString)

    End Function
End Module

用法:

console.writeline("Ciao!\n".unEscape)

1

在我这边,我创建了一个子MyMsgBox,用ControlChars.NewLine在提示符下替换\ n



1
msgbox "This is the first line" & vbcrlf & "and this is the second line"

或在.NET中 msgbox "This is the first line" & Environment.NewLine & "and this is the second line"




-1

msgbox(“此处输入您的文本”&Environment.NewLine&“更多文本”)是简便的方法。没有必要让您的代码变得比您需要的更加困难或更加复杂...


1
您的答案(Environment.NewLine)已在3年前给出,是投票率最高的答案。这更像是评论。要批评或要求作者澄清,请在其帖子下方留下评论-您始终可以对自己的帖子发表评论,一旦您拥有足够的声誉,就可以在任何帖子中发表评论。
斯科特·索默
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.