Entwickler-Ecke

WinForms - RichTextBox Eintrag


Peter1000 - Mi 13.08.14 10:32
Titel: RichTextBox Eintrag
Hallo,

ich moechte ein Byte-Array in einer RichTextBox ausgeben.
Das Array ist relativ groß (100.000 Einträge)

Hier der Code:


C#-Quelltext
1:
2:
3:
4:
5:
6:
 richTextBox1.Clear();
 for (int vg = 0; vg < 100000; vg++)
 {
     we3 = Convert.ToChar(proband01_array[vg]);
     richTextBox1.Text += Convert.ToString(we3);
 }




Es wird auch alles eingetragen. Das Problem ist, dass es viel zu lange dauert.
gibt es z.b. die Möglichkeit, evtl. erst mal das Array komplett einzutragen und nachher auszugeben,
oder ist ne RichtextBox da generell ungeeignet?

THX

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Ralf Jansen - Mi 13.08.14 11:28

Das an die RichTextBox dranzustückeln könnte ich mir vorstellen das das problematisch ist.
Jedes 'Text +=' wird ein aktualiseren des Inhalt anstoßen.

Optimaler wäre es vermutlich erstmal das ByteArray in einen anzeigbaren String zu wandeln und das dann anzuzeigen.
Mit einem Dummy Array im Beispiel geht das mehr oder weniger instantan.

C#-Quelltext
1:
2:
Byte[] bytes = Enumerable.Range(1100000).Select(i => (byte)i).ToArray(); 
richTextBox1.Text = string.Join("", bytes.Select(x => Convert.ToString(x)));


Th69 - Mi 13.08.14 12:20

Und wenn man Text anfügen möche, immer AppendText [http://msdn.microsoft.com/de-de/library/system.windows.forms.textboxbase.appendtext%28v=vs.110%29.aspx] benutzen.


Peter1000 - Mi 13.08.14 12:41

user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Das an die RichTextBox dranzustückeln könnte ich mir vorstellen das das problematisch ist.
Jedes 'Text +=' wird ein aktualiseren des Inhalt anstoßen.

Optimaler wäre es vermutlich erstmal das ByteArray in einen anzeigbaren String zu wandeln und das dann anzuzeigen.
Mit einem Dummy Array im Beispiel geht das mehr oder weniger instantan.

C#-Quelltext
1:
2:
Byte[] bytes = Enumerable.Range(1100000).Select(i => (byte)i).ToArray(); 
richTextBox1.Text = string.Join("", bytes.Select(x => Convert.ToString(x)));


Danke, funzt perfekt!!

ich musste nur Convert.ToString in Convert.ToChar ändern.