Autor Beitrag
coolace
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141



BeitragVerfasst: Mo 04.08.08 20:04 
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?

ausblenden 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 user profile iconChristian S.: C#-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
coolace Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 04.08.08 21:51 
user profile iconcoolace 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
ausblenden 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:
ausblenden 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
coolace Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141



BeitragVerfasst: 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:
ausblenden 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 user profile iconChristian S.: C#-Tags hinzugefügt