2016-07-13 6 views
0

Ich benutze XtraReport und ein Memo. Ich möchte eine Rum-Schleife für jedes Memo erstellen und XtraReport hinzufügen.C# - ForEach Memo Lines

Mein Code:

foreach (string line in memo_autores.Text.Split('\n')) 
      { 
        report.xrRichText1.Text = line; 
      } 

Out:

Nur letzte Zeile memo_autores

Wie kann ich dieses Problem beheben?

+2

Warum Sie spalten sich auf \ n vor dem xrRichText1.Text hinzufügen? –

+2

Rum-Loop klingt wie eine gute Zeit. – Mvarta

Antwort

1

Sieht aus wie Sie müssen verketten, anstatt den Text insgesamt zu ersetzen. Jede Iteration der Schleife stellt eine Textzeile dar. Wenn Sie also nur innerhalb der Schleife zuweisen, wird die letzte Zeile angezeigt, da dies der letzte Wert ist. Wenn Sie eine Zeichenfolge wie unten aufbauen, dann werden Sie den ganzen Text sehen:

var sb = new StringBuilder(); 
foreach (string line in memo_autores.Text.Split(new [] { Environment.NewLine }, StringSplitOptions.None)) 
{ 
    sb.AppendLine(line); 
} 
report.xrRichText1.Text = sb.ToString(); 

Wie in den Kommentaren darauf hingewiesen, dies ist ein viel direkterer Weg zum Kopieren über den vollständigen Text sein könnte:

report.xrRichText1.Text = memo_autores.Text; 

Oder mit den Zeilenumbrüchen gezupft:

report.xrRichText1.Text = memo_autores.Text.Replace(Environment.NewLine, string.Empty); 
+1

Nun auf \ n spalten und dann zusammenfügen bringt ihn direkt zurück zu memo_autores.Text, mit einigen möglicherweise in je nachdem, was in Text war zu Beginn geworfen. –

+0

Das ist ein guter Punkt, ich nahm an, er wollte alles. Es gibt definitiv einen direkteren Weg, wenn er vom Memo zum Bericht übersetzen möchte. – rmc00

+0

Ich denke, wir müssen wissen, warum er auf \ n aufspaltet, um eine gute Antwort zu geben. Könnte zum Beispiel sein, dass er "line1 \ nline2" hat und "line1 \ r \ nline2" benötigt (in diesem Fall würde deine Antwort funktionieren), oder es könnte ein ganz anderer Grund sein. –