it-swarm.com.de

Neue Zeile funktioniert in MessageBox in C #/WPF nicht

Kurze Frage: Ich habe eine Zeichenfolge in meinen Ressourcen: "Dies ist meine Testzeichenfolge {0}\n\nTest"

Ich versuche, diese Zeichenfolge in meiner Messagebox anzuzeigen:

MessageBox.Show(String.Format(Properties.Resources.About, 
    Constants.VERSION), 
    Properties.Resources.About_Title, MessageBoxButton.OK, 
    MessageBoxImage.Information);

Ich bekomme jedoch keine neuen Zeilen. Die\n erscheinen weiterhin als Zeichen, nicht als neue Zeilen.

Ich habe auch versucht, eine Problemumgehung wie mystring.Replace ("\ n", Environment.NewLine) zu verwenden, aber dies ändert auch nichts.

Was mache ich falsch?

Edit: Lustig zu erwähnen: Ersetzen ("\ n", "etwas anderes") ändert nichts. 

Edit2: Shift + Enter in meiner Resource-Datei statt\n scheint zu funktionieren ... Seltsames Verhalten trotzdem

14
Frame91

Platzieren Sie einen Platzhalter an der Stelle, an der Sie eine neue Zeile einfügen möchten, und ersetzen Sie sie in dem Code, in dem Sie diese Ressourcenzeichenfolge verwenden, durch eine neue Zeile: Zeichenfolge Ressource: "Dies ist die erste Zeile ist die dritte Zeile. " Sie verwenden diese Ressourcenzeichenfolge wie folgt: MessageBox.Show (string.Format (MyStringResourceClass.MyStringPropertyName, Environment.NewLine));

OR

Unkonventionelle Methode Aber ich habe es gerade erst zum Laufen gebracht, indem Sie Newline direkt aus Word (oder einem anderen Ort) kopiert und in die Ressourcen-String-Datei eingefügt haben.

It was simple..
OR

\ r\n Zeichen werden in eine neue Zeile umgewandelt, wenn Sie sie mithilfe eines Meldungsfelds anzeigen oder einem Textfeld zuweisen oder wenn Sie es in der Benutzeroberfläche verwenden.

In C # (wie in den meisten von C abgeleiteten Sprachen) werden Escape-Zeichen verwendet, um Sonderzeichen wie return und tab zu kennzeichnen, und + wird anstelle von & für String-Verkettung verwendet.

Damit Ihr Code unter C # funktioniert, haben Sie zwei Möglichkeiten ... Erstens, ersetzen Sie einfach die NewLine durch das Return-Escape-Zeichen\n ala:

MessageBox.Show("this is first line" + "\n" + "this is second line");

Die andere Methode, und richtiger, ist, sie stattdessen durch Environment.NewLine zu ersetzen, die sich theoretisch je nach verwendetem System ändern kann (jedoch unwahrscheinlich).

MessageBox.Show("this is first line" + Environment.NewLine + "this is second line");
21
Arjun Chaudhary

Trennen Sie im Ressourcen-Editor Ihren String-Inhalt mit shift + enter. Oder bearbeiten Sie Ihre ResX-Datei im XML-Editor und erstellen Sie mit der Eingabetaste eine neue Zeile für Ihre Ressourcenzeichenfolge.

Unter diesem Link finden Sie ausführliche Informationen: Wagenrücklauf/Zeile in ResX-Datei.

6
petchirajan

Versuche dies:

    String outputMessage = string.Format("Line 1{0}Line 2{0}Line 3", Environment.NewLine);
    MessageBox.Show(outputMessage);

Ein weiteres Beispiel mit einer anderen Variablen:

    String anotherValue = "Line 4";
    String outputMessage = string.Format("Line 1{0}Line 2{0}Line 3{0}{1}", Environment.NewLine, anotherValue);
    MessageBox.Show(outputMessage);
4
Chris

Versuche dies

entfernen der MessageBoxButtons.OK und MessageBoxImage. Information. 

 MessageBox.Show(String.Format(Properties.Resources.About, 
Constants.VERSION), 
Properties.Resources.About_Title);
0
justPassingBy