2012-01-27 13 views
8

Jak mogę dodać podział wiersza za pomocą metody SetText?Podział wiersza za pomocą schowka SetText

Próbowałem Clipboard.SetText("eee \n xxxx");, ale nie daje mi oczekiwanego wyniku, gdy wklej dane schowka w notatniku.

Oczekiwany wynik:

eee 
xxxx 

W jaki sposób można to osiągnąć?

+1

co to daje? – gdoron

+0

coś: eee (kwadratowy znak) xxxx – yonan2236

Odpowiedz

9

Windows używa CR + LF par, aby wskazać nowy wiersz. Odpowiada to "\r\n" w języku C#. Jednak przesyłasz właśnie jedną liczbę: "\n", tj. Pojedynczą parę LF zamiast pary CR + LF.

Użyj Environment.NewLine zamiast "\n". To jest idiomalny sposób na przeliterowanie "\r\n" w języku C#. Jako bonus, jeśli kiedykolwiek uruchamiałeś swój kod na platformie * nix, Environment.NewLine oszacował by "\ n", który jest wskaźnikiem * nowej linii. Wreszcie, moim zdaniem, preferowana jest opcja Environment.NewLine z perspektywy czytelności. Dokumentuje to, czym jest to logiczne, a nie polega na tym, że znasz magiczne stałe.

+0

nowa wiedza dla mnie. dzięki tym informacjom. – yonan2236

+0

Witaj David, gdzie mogę znaleźć odniesienie dla tego rodzaju skrótów lub podobnych? – yonan2236

+0

Nie jestem pewien, czy istnieje jakaś lista przydatnych informacji. Po prostu wybieraj te rzeczy, kiedy będziesz postępować. Języki wyższego poziomu dobrze chronią cię przed tymi wszystkimi szczegółami, ale od czasu do czasu napotykasz na nie. –

4

Spróbuj:

Clipboard.SetText("eee" + Environment.NewLine + "xxxx"); 
+0

ya, to jest to ... dzięki:) – yonan2236

1

znalazłem to działa dobrze, jak dobrze:

System.Windows.Forms.Clipboard.SetText(this.txtCopyJS.Text.Replace("\n", "\r\n")); 
+0

Jest to szczególnie przydatne podczas obsługi ciągów w C++. –

Powiązane problemy