I wydają się być przeżywa bardzo nietypowy problem z kontrolą RichTextBox
, programowania w języku C# w Visual Studio 2008.RichTextBox nie przetwarza nowe postacie powrotów linii/karetki
Jestem obecnie czytania strumienia pliku, który jest będącego napisany do konsoli Windows (z przekierowaniem wyjścia) i czytam go do mojego programu (w zasadzie odtwarzam to, co jest znane w świecie unixów jako "ogon").
Kiedy zostanie odczytana tablica bajtów, chciałbym powrócić do nowej linii i kontynuować czytanie. Wygląda jednak na to, że mój RTB nie zareaguje na znaki nowej linii lub znaku powrotu karetki. Na przykład próbowałem dołączyć \n
, \r\n
, a nawet Environment.NewLine
do napisanego ciągu, ale nic nie działa. Po prostu pisze w tej samej linii.
Oto kod, który wydaje się być przyczyną problemów:
string convertedBuffer = System.Text.Encoding.UTF8.GetString((byte[])e.UserState);
outputBox.AppendText(convertedBuffer + "\n");
Jestem naprawdę ze stratą tutaj, może ktoś pomóc?
To byłby Domyślam się też, że wartość Multiline jest niestety prawdziwa. Aby uzyskać więcej informacji, kiedy przypisuję właściwość Tekst zamiast dodawać do niej, wydaje się, że znaki nowego wiersza są w pełni rozpoznane, ponieważ widzę, jak mój kursor przesuwa się w dół o dwie linie za pomocą \ n \ n. Jednak w powyższym bloku kodu nadal nie działa. – TGP1994
@ TGP1994: To jest dziwne. Sprawdziłem: Dodałem nowy "Form" 'Form1' i dodałem do niego nowy' richTextBox1' z jego domyślnymi wartościami. Teraz przy kodzie oceniamy linię dodawania wielokrotnego, jak 'richTextBox1.AppendText (" Testowanie ... "+ Environment.NewLine); richTextBox1.AppendText ("Testowanie ..." + Environment.NewLine); 'Będzie działać zgodnie z oczekiwaniami ... –
Co powiesz na dodanie łańcucha, który został wygenerowany z System.Text.Encoding.UTF8.GetString()? – TGP1994