Foros del Web » Programación para mayores de 30 ;) » .NET »

Delegados rebeldes

Estas en el tema de Delegados rebeldes en el foro de .NET en Foros del Web. 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) ...
  #1 (permalink)  
Antiguo 21/05/2010, 18:15
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 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.
  #2 (permalink)  
Antiguo 22/05/2010, 02:04
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Delegados rebeldes

Puede que tengas un problema porque defines el delegado justo dentro de la función a la que ha de llamar. No se si eso no entrará en algún bucle raro o que, pero ese código lo pondría fuera...
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 22/05/2010, 05:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Delegados rebeldes

Cita:
Iniciado por Malenko Ver Mensaje
Puede que tengas un problema porque defines el delegado justo dentro de la función a la que ha de llamar. No se si eso no entrará en algún bucle raro o que, pero ese código lo pondría fuera...
¿Y cuál código meto fuera? Porque he probado ejemplos...ni limpiando los TextBox del formulario recorriendo con un Foreach de los controles me da error...

Saludos.

Etiquetas: delegados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:59.