Entwickler-Ecke
WinForms - Richtextbox Einträge farbig
coolace - Mo 04.08.08 20:04
Titel: Richtextbox Einträge farbig
Hy,
ich weiß das dies hier schon öfters behandelt worden ist und die Board suche hat mir auch viel geholfen aber der
fein schlief fehlt noch. Ich schreib ein Programm das aus einer Textbox die Eingabe ließt und dann je nach
Wahl der Users eine von 3 Farben annehmen kann. Das Problem, es funktioniert erst bei der 2 Eingabe, d.h
wenn ich das erste mal über den Menüpunkt was hinzufüge ist es schwarz, beim 2mal geht´s dann. Das selbe
mit den anderen Menüpunkten.Programmiersprache C#. Was mach ich falsch?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| try { zahl = Convert.toint(txtzahl.Text); n = txteingabe.Text + " " + zahl + "\n"; rtfbox.AppendText(n); rtfbox.Select(rtfbox.TextLength, n.Length); rtfbox.SelectionColor = Color.Red; txteingabe.Clear(); txtzahl.Clear(); } catch (FormatException) { MessageBox.Show(this, "Sie müssen eine Zahle eingeben", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error); txteingabe.Clear(); } |
Vielen Dank für Tipps
LG
Coolace
Moderiert von
Christian S.: C#-Tags hinzugefügt
Christian S. - Mo 04.08.08 20:11
Hallo!
Der erste Parameter der Select-Methode ist der Startpunkt der Auswahl. Beim ersten Mal setzt Du den Startpunkt der Auswahl also auf das Ende des Textes. Daher wird nichts selektiert.
Grüße
Christian
//edit: Irgendwie ist mir nicht klar, warum das überhaupt jemals funktioniert :gruebel:
coolace - Mo 04.08.08 21:34
mein Gedanke ist da ich ja den Text immer hinten anhänge das ich den Courser nach hinten setze und dann den kompletten Text markiere, nachdem er markiert ist rot einfärbe. Grund, der nächste Eintrag soll ja wieder andersfarbig sein.
Ich kapier nur nicht warum dieses Phänomen auftritt das es nur ab dem 2mal klappt.
Gruß
Coolace
Christian S. - Mo 04.08.08 21:51
coolace hat folgendes geschrieben: |
mein Gedanke ist da ich ja den Text immer hinten anhänge das ich den Courser nach hinten setze und dann den kompletten Text markiere, nachdem er markiert ist rot einfärbe. |
Ja, das ist mir schon klar. Aber mit
C#-Quelltext
1:
| rtfbox.Select(rtfbox.TextLength, n.Length); |
setzt Du den Start der Markierung auf
das Ende des Textes.
Hier noch der Ausschnitt aus der Doku:
Zitat: |
C#-Quelltext 1: 2: 3: 4:
| public void Select( int start, int length ) |
Parameters
start
Type: System..::.Int32
The position of the first character in the current text selection within the text box.
length
Type: System..::.Int32
The number of characters to select. |
coolace - Di 05.08.08 08:31
schön langsam kapier ich meinen Denkfehler, ich
setze die Markierung falsch. Ich werde heute Abend das ändern
und wenn es passt den Quellcode posten.
coolace - Di 05.08.08 20:18
Hy,
das Problem ist gelöst, an alle die das selbe Problem haben, es gibt 2 Textfelder von einem wird
ein string eingelesen von dem anderen eine Zahl. Der String wird dann zusammengefügt und in einer
RFTBox hinzugefügt. Je nach Buttonauswahl bekommt der angehängte Text eine andere Farbe
Code:
C#-Quelltext
1: 2: 3: 4: 5:
| n = txteingabe.Text + " " + zahl + "\n"; startindex = rtfbox.TextLength; rtfbox.AppendText(n); rtfbox.Select(startindex, n.Length); rtfbox.SelectionColor = Color.Brown; |
Vielen Dank an alle die geholfen haben.
Gruß
Coolace
Moderiert von
Christian S.: C#-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!