Ingegneria Forum

Ingegneria Edile, Strutturale & Geotecnica => .:C#, Excel, VB e Programmazione:. => Topic started by: 82_marco on 23 February , 2012, 21:54:49 PM

Title: problema di refresh su richtextbox
Post by: 82_marco on 23 February , 2012, 21:54:49 PM
Ciao a tutti,
Mi chiamo Marco, sono un nuovo iscritto,

mi sto appassionando al c# ed Ho un piccolo problema con una richtextbox da cui non riesco ad uscirne
quando vado ad aggiornare una riga (nel mio caso parto dal quinto carattere) questa lampeggia partendo dal quinto carattere, mentre quelli prima no.
Non sono riuscito a trovare nessuna soluzione

questo e' il metodo con cui eseguo l aggiornamento

Code: [Select]
private delegate void WriteToLineDelegate(int lineNumber, string text);
        private void WriteToLine(int lineNumber, string text)
        {
            int pos = richTextBox1.GetFirstCharIndexFromLine(lineNumber);
            richTextBox1.Select(pos + 5,richTextBox1.Lines[lineNumber].Length - 5);
            richTextBox1.SelectedText = text;
        }


Con questo codice la inizializzo:

Code: [Select]
System.Text.StringBuilder builder = new System.Text.StringBuilder();
            for (int i = 0; i < 127; i++)
            builder.AppendLine("P" + (i + 1) + "      ");
            richTextBox1.Text = builder.ToString();


Qua effettuo la chiamata al metodo:

Code: [Select]
     while (true)
            {   
                 ..........

                          if (prot2.CheckSum(s_ricevi.Substring(0, 18)) == s_ricevi.Substring(18, 2))
                        {
                            periferica = string.Concat("DI:", DI1, DI2, DI3, DI4, DI5, DI6, DI7, DI8, " DO:", DObin, " AI1:", AI1, " AI2:", AI2, " TI1:", TI1, " TI2:", TI2, " ", s_ricevi.Substring(0, 19));
                        }
                        else
                        {
                            periferica = ("");
                        }

                        BeginInvoke(new WriteToLineDelegate(WriteToLine), (int)s_ricevi[1] - 100 - 1, periferica);
                }
               
                Thread.Sleep(25);



Spero in un vostro aiuto perche' non so proprio come fare
Grazie