Wie verwende ich eine neue Zeile in VB msgbox ()…?


Antworten:


91
  • für VB: vbCrLf odervbNewLine
  • für VB.NET: Environment.NewLine oder vbCrLfoderConstants.vbCrLf

Informationen zur neuen VB.NET-Zeile: http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx

Die Informationen für Environment.NewLinekamen von Cody Gray und J Vermeire


9
Nicht vbCrLffür VB.NET-Code verwenden! Dies dient nur der Kompatibilität mit portierten VB 6-Anwendungen. Sie sollten Environment.NewLinestattdessen verwenden, wie in der Antwort von J. Vermeire vorgeschlagen.
Cody Gray

Ich stimme Ihnen zu, dass Environment.NewLine verwendet werden sollte, aber weil es plattformübergreifend ist. Es gibt \ r \ n für Windows zurück, aber nur \ n für Unix / Linux-basierte Plattformen.
Fun Mun Pieng

Ja, das ist ein sehr guter Grund, es zu benutzen. Angesichts der Tatsache, dass alternative Implementierungen der CLR (wie Mono) VB.NET unterstützen, ist es eine gute Idee, Code mit Blick auf die Plattformunabhängigkeit zu schreiben. Darüber hinaus ist es immer eine gute Idee, Standard-.NET Framework-Redewendungen anstelle von Holdovers aus Gründen der Abwärtskompatibilität zu verwenden. Der größte Fehler, den ein VB.NET-Programmierer machen wird, ist die Annahme, dass es dieselbe Sprache wie VB 6 ist. Dies ist ausdrücklich nicht der Fall! Die wahre Objektorientierung kratzt nur die Oberfläche der Unterschiede. Anders zu tun ist, sich selbst Unrecht zu tun.
Cody Gray

2
Abstimmung abstimmen, weil es bei mir nicht funktioniert. Wenn Sie EditPoint.Insert (vbNewLine) in einem VB-Makro aufrufen, wird \ r \ n eingefügt. vbLf ist die richtige Antwort auf die gestellte Frage.
Samuel

25

Versuchen Sie es mit vbcrlfeiner neuen Zeile

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

Das Beispiel wird geschätzt, weil ich nicht mit VB arbeite und das Verkettungsformat nicht kenne. Sie werden offensichtlich nicht in doppelten Anführungszeichen interpretiert.
Tim Morton

23

Dies sind die Zeichenfolgen zum Erstellen einer neuen Zeile:

  • vbCr ist der Wagenrücklauf (Rückkehr zum Zeilenanfang),

  • vbLf ist der Zeilenvorschub (zur nächsten Zeile gehen)

  • vbCrLf ist der Wagenrücklauf / Zeilenvorschub (ähnlich wie beim Drücken der Eingabetaste)

Ich bevorzuge es, vbNewLineda es systemunabhängig ist ( vbCrLfauf einigen Systemen möglicherweise keine echte neue Linie)


@ Andrew - während meiner College-Tage, als ich in vb programmiere
Pranay Rana

1
Theoretisch hast du wohl recht. Aber in jeder Implementierung, die ich gesehen habe, vbNewLinewird einfach definiert als vbCrLf. Es gibt keinen Unterschied.
Cody Gray

Ich würde nichts ändern. Ich stimme dir so zu wie es ist. Ich denke vbNewLine, drückt Ihre Absicht klarer aus. Es wurde offensichtlich entworfen , um eine neue Zeile einzufügen. Ich habe nur einen Hilfskommentar geliefert. "Unter der Haube" machen sie das Gleiche. Solche Implementierungsdetails sollten nicht in Ihren Code gelangen.
Cody Gray



5

Eine Alternative zu Environment.NewLine ist die Verwendung von:

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

von System.Text.RegularExpressions

Auf diese Weise können Sie Text ohne Verkettung von Zeichenfolgen maskieren, wie dies in C #, C, Java möglich ist



2

Verwenden Sie den Befehl "vbNewLine"

Beispiel

Hello & vbNewLine & "World"

wird in einer Zeile als Hallo und in einer anderen als Welt angezeigt


1

Sie können das Wagenrücklaufzeichen (Chr (13)) verwenden, ein Zeilenvorschubzeichen (Chr (10)) ebenfalls

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

Verwendung:

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

1

Auf meiner Seite habe ich eine Sub-MyMsgBox erstellt, die \ n in der Eingabeaufforderung von ControlChars.NewLine ersetzt



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

oder in .NET msgbox "This is the first line" & Environment.NewLine & "and this is the second line"


0

Diese Arbeit für mich: MessageBox.Show("YourString" & vbcrlf & "YourNewLineString")



-1

msgbox ("Ihr Text hier" & Environment.NewLine & "mehr Text") ist der einfachste Weg. Es macht keinen Sinn, Ihren Code schwieriger oder komplizierter zu machen, als Sie es brauchen ...


1
Ihre Antwort ( Environment.NewLine) wurde bereits vor 3 Jahren gegeben und ist die am höchsten bewertete Antwort. Dies ist eher ein Kommentar. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. Sie können jederzeit Ihre eigenen Beiträge kommentieren. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren.
Scott Solmer
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.