Avatar billede rix Praktikant
11. juli 2012 - 21:28 Der er 6 kommentarer og
1 løsning

Skriv nogle bestemte sættninger i en bestemt farve.

Hej jeg har brug for at en linje bliver skrevet i en bestemt farve.

De løsninger jeg har kunne finde på internettet (google er ikke lige den bedste ven her synes jeg) har resulteret i at alle ord i min richTextBox1 bliver i den samme farve

hvordan kan man liige gøre det ??
Avatar billede arne_v Ekspert
12. juli 2012 - 02:25 #1
En mulighed er ihvertfald denne teknik:

            richTextBox1.SelectionStart = 0;
            richTextBox1.SelectionLength = 10;
            richTextBox1.SelectionColor = Color.Red;
Avatar billede rix Praktikant
12. juli 2012 - 16:08 #2
Hej arne_v har prøvet to ting
den du viste mig
og så

richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.SelectionLength = readData.Length;
richTextBox1.SelectionColor = Color.Red;

Men den du viste gjorde at alt stod med rød og det jeg prøvde endte med intet stod med rød men med sort. kan du forklare lidt nærmere hvordan det fungere ?
Avatar billede Syska Mester
12. juli 2012 - 16:19 #3
Øhhh,

Hvad inderholder "readData" ?

richTextBox1.SelectionStart = richTextBox1.Text.Length; <- Dette gør efter hvad jeg lige kan se at din selected først er i slutningen af alt din text.

Kan du komme med lidt mere kode så vi kan se hvor det går galt.
Avatar billede rix Praktikant
12. juli 2012 - 16:24 #4
Uhh ja en lille en eks. på hvordan det bruges


string readData;

public void Form1_load(){
readData = "testtesttesttesttesttest";
msg();
}

privat void msg(){
          if (this.InvokeRequired)
            {
                this.Invoke(new MethodInvoker(msg));
            }
            else
            {
richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.SelectionLength = readData.Length;
richTextBox1.SelectionColor = Color.Red;
richTextBox1.Text = readData;
               
            }
}


men hvis det er hvor det starter skal man vel så gøre


int num = (richTextBox1.Text.Length - readData.Length);
og så bruge num istedet for ??
Avatar billede Syska Mester
12. juli 2012 - 16:30 #5
This makes no sense ...

Antager at Text af din RTE er tom.

Forklaring af hvad din msg() metoder gør i menneskelig tekst.

Sæt Selectection start til længden af din RTE er er tom dvs "0".
Sæt selectionLength til din "testtesttesttesttesttest" som er X tegn.
Sæt Color til rød før det valgte.
Sæt hele din RTE tekst til readData som er "testtesttesttesttesttest".

Jeg er lidt i tvivl om hvordan den håndtere at din RTE ikke er tom længere men nu har en masse tekst ... den gør det nok Rød.

Hvad er det du vil opnå? Jeg kan ikke lige gennemskue det.
Avatar billede rix Praktikant
12. juli 2012 - 16:46 #6
Jeg har en lang liste med tekst (det kan være havd som helst).

Så tager jeg nogle bestemte linjer ud. og dem ville jeg farve med føglende farver. blå rød eller grøn.
og smide dem tilbage igen i listen med den vaglte farve.
Avatar billede rix Praktikant
12. juli 2012 - 21:40 #7
Jeg fandt en løgsning.
kommer lige med en link og en forklaring (jo ikke sikkert at linket findes når nogle har brug for det.)

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/651faf9b-ae32-4c99-b619-d3afd89477e1/

jeg oprettede en arraylist. i den puttede jeg farve. start nummeret ved at indsætte
richTextBox1.Text.Length

teksten størlese ved at skrive readData.Length.

og så bruge foreach og køre det igmen. måske ikke den bedste løgsning men den virker ^^

koden jeg snakker om er

richTextBox1.SelectionStart=richTextBox1.Text.Length;

richTextBox1.SelectionLength=readData.Length;

richTextBox1.SelectionFont=fnt;

richTextBox1.SelectionColor=Color.CadetBlue;

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester