Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2010, 18:15
Kurace
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 6 meses
Puntos: 0
Delegados rebeldes

Hola a todos, buenas noches.

Resulta que tengo varios textBox, en los que les meto una información (que son logs, al fin y al cabo) y todo correcto. Sin problemas.

Salvo por un detalle...que intento vaciar los logs ¡¡y no se vacían!! Y he probado varias cosas, pero no se me ocurre nada. Y el problema está en el delegado, que no lo hace...

Código:
delegate void SetTextCallback(TextBox control, string texto);
Esta es su definición

Código:
private void setText(TextBox control, string texto)
        {
            if (control.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(setText);
                this.Invoke(d, new object[] { control, texto });
            }
            else
            {
                try
                {
                    control.AppendText(texto);
                    if (control == txLog)
                    {
                        log.Write(texto);
                    }
                }
                catch (Exception ex)
                {
                    setText(txLog, "\nError en el Log: " + ex.ToString());
                    totalErrors++;
                }
            }
        }
Posteriormente, para llamarlo es simplemente así:

Código:
setText(txLog,"Hola");
txLog es un textBox.

Es decir, si pones setText(txLog,"");, no hace nada, es más, no vacía el contenido...Incluso probé con un Stringbuilder, pensé que con sb.AppendLine("").toString(); o similares podría, pero tampoco es así.

No sé, ¿alguna idea?

Un saludo.