2009-08-28 18 views
7

Jestem całkiem nowy dla C# (ostatnio miałem problem z interfejsem RS-232) i próbuję napisać małą aplikację, która wykonuje różne zadania za kulisami i chcę utworzyć dziennik komunikaty, aby informować użytkownika na jakim etapie znajduje się aplikacja.C# - Zapisywanie dziennika przy użyciu pola tekstowego

Dziennik składa się z prostych wiadomości w jednym wierszu.

Obecnie używam pola tekstowego, które jest wyłączone, aby użytkownik nie mógł go zmienić. Oczywiście mogę zrobić wiele linii tekstu używając znaków \ ​​r \ n na końcu linii, ale kiedy przychodzę napisać drugi zestaw komunikatów, są one napisane na początku pola tekstowego nadpisując pierwsze wiadomości.

Czy mogę to zmienić, dodając zamiast nadpisywać? Czy pole tekstowe będzie automatycznie dodawać stopkę przewijania, gdy tekst jest większy, niż może wyświetlić to okno?

Odpowiedz

6
textBox1.Text += "new Log Message" + Environment.NewLine; 

uczynić texbox nie wyłączył, ale tylko do odczytu i pasek przewijania pojawi

+0

Wszystko działało świetnie i musiałem włączyć pole tekstowe w przeciwnym razie nie byłby przewijania poruszać, ale tylko do odczytu sortowane że zbyt! Dzięki wszystkim! Znakomity. – George

+0

serdecznie zapraszamy;) –

+0

Wystąpił problem. Po dodaniu pierwszego wpisu do dziennika na początku pojawi się pusty znak nowej linii. – erelender

4

Aby dodać go u góry:

textBox.Text = newText + Environment.NewLine + textBox.Text; 

Aby dołączyć go:

textBox.Text += Environment.NewLine + newText; 

Tak , pasek przewijania jest dodawany automatycznie.

2

Możesz dołączyć do tekstu przy użyciu tego kawałka kodu:

myTextBox.Text += myLogText + Environment.NewLine; 

Alternatywnie, można użyć ListBox.

0

Lepszym rozwiązaniem jest użycie:

TextBox.AppendText(string) 

na przykład:

myTextBox.AppendText(newLogEntry + Environment.NewLine); 

co sprawia, że ​​wielu linii pola tekstowego przewiń do przycisku, jak również w celu uniknięcia migotania paska przewijania.

MSDN on TextBox.AppendText(string)

Powiązane problemy