2016-07-24 47 views
0

Ich habe ein Problem mit Zwischenablage und ListBox aufgetreten. Hier ist, was meine Übertragung von Zwischenablage zu ListBox-Code aussieht:Einfügen von Text in einer Listbox macht es wie 1 Stück, obwohl es nicht

string s = Clipboard.GetText(); 
string[] lines = s.Split('\n'); 
foreach (string ln in lines) 
{ 
    listBox1.Items.Add(ln.Trim()); 
} 

Das funktioniert perfekt gut und macht den Job. Aber das Problem ist, dass wenn ich den Text nicht wirklich aus Excel oder Word oder irgendeinem anderen Texteditor kopiere (ich kopiere ihn aus einer anderen Anwendung, die den Text in Zeilen anzeigt), zeigt er nicht alle Elemente in einer separaten Zeile an . Wenn ich den Text zurückkopiere, werden die neuen Zeilen korrekt angezeigt. Das nervt mich wirklich, also ist meine Frage: können Sie eine andere Weise vorschlagen, den Text in die listBox einzufügen?

+0

Haben Sie versucht, die Zeichenfolge mit dem Debugger zu untersuchen und überprüfen, was der neue tatsächliche ist Splitter im Fall von (Kopieren von * anderen Anwendungen *) – user3185569

Antwort

0

Neue Zeile wird nicht immer als "\ n" dargestellt. Um dies zu überwinden, verwenden Sie diese:

.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.None) 
+0

Vielen Dank für die schnelle Antwort . Ich habe das gerade probiert, aber leider zeigt es immer noch alle Artikel auf 1 Zeile. Wirklich das Problem ist nicht logisch, alles geht als separates Element, in einer separaten Zeile, aber es zeigt es nur in 1 Zeile. Danke noch einmal! –

+0

Hallo wieder, ich habe gerade "\ r" als ein anderes Trennzeichen hinzugefügt und es hat funktioniert. Vielen Dank für die Idee! :) –

+0

Um dies zu vermeiden, fange ich immer an, sowohl '\ r \ n' als auch' \ r' durch '\ n' zu ersetzen und dann nur' \ n' zu teilen. – Nyerguds