Go Down

Topic: [OT] Problema di refresh su richtextbox (Read 1 time) previous topic - next topic

82_marco

Feb 23, 2012, 09:42 pm Last Edit: Feb 23, 2012, 10:55 pm by 82_marco Reason: 1
Ciao a tutti,
Mi chiamo Marco, sono un nuovo iscritto,

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

lesto

ma che linguaggio di programmazione è? che centra con arduino?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

82_marco

e' c#, avevo visto che ci sono dei post a riguardo, se mi sono sbagliato scusatemi

leo72

Sì, si può chiedere anche in merito alla programmazione lato PC ma, essendo un forum sull'Arduino, sarebbe bene mettere un bel [OT] nel titolo del thread perché sei un po' off topic  :P


82_marco

Ho modificato il titolo :-)
Per favore riuscite a darmi un aituo? non so proprio come gestire questo problema :-(

lucadentella

ciao

il fatto che usi un metodo delegate per aggiornarla significa che stai lavorando in un thread separato?
che significa "lampeggia dal quinto carattere"? riesci ad allegare una solution di esempio (VS2010?)
lucadentella.it

82_marco

#6
Feb 23, 2012, 11:22 pm Last Edit: Feb 23, 2012, 11:28 pm by 82_marco Reason: 1
si uso un thread separato
cosa significa solution di esempio?
se vuoi allego tutto il progetto

lucadentella

sì va bene, in VS un "progetto" (o meglio una famiglia di progetti) va sotto il nome di solution  8)
se è complesso e composto da molte classi, magari riesci ad "alleggerirlo" e fare un piccolo progetto che mostra solo il problema?
lucadentella.it

lesto

cavoli sto c# è quasi identico al java...

ad occhio direi che aggiorni il campo troppo spesso: non stai usando openGX o directX, aggiornare la textbox più di 20/25 volte al secondo può essere pesante

prova a mettere il Thread.wait() DENTRO al while..

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

82_marco

ok domani lo preparo

c'e' un thread.sleep, lo ho portato anche a 1000ms ma il risultato e' un lampeggio piu lento

Go Up