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

C# - Ayuda con Eventos y Delegados(Actualizar controles) winforms

Estas en el tema de C# - Ayuda con Eventos y Delegados(Actualizar controles) winforms en el foro de .NET en Foros del Web. Buenas noches foreros, He puesto hace un mes más o menos un post similar a este, pero es que todavía no he conseguido resolver el ...
  #1 (permalink)  
Antiguo 10/01/2008, 20:31
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
C# - Ayuda con Eventos y Delegados(Actualizar controles) winforms

Buenas noches foreros,

He puesto hace un mes más o menos un post similar a este, pero es que todavía no he conseguido resolver el problema que tengo.

Lo he mejorado todo lo que he podido, pero soy incapaz de lograr lo que busco y se que se puede.

Resulta que tengo una clase que genera eventos, y desde una aplicacion windows capturo dichos eventos.

Al capturar estos eventos, modifico los datos de una caja de texto y para que no me de error, por intentar modificar un control desde una hebra diferente, tengo el siguiente código:


Eventos capturados en mi aplicacion windows
Código:
        private void btnIniciar_Click(object sender, EventArgs e)
        {
            objHeviaServer.NuevaConexion += new HeviaServerXml.ClsServidor.EventoNuevaConexion(objHeviaServer_NuevaConexion);

            objHeviaServer.FinConexion += new HeviaServerXml.ClsServidor.EventoFinConexion(objHeviaServer_FinConexion);
        }




        //NUEVA UNA CONEXION
        private void objHeviaServer_NuevaConexion(string txtIpCliente, int puertoCliente)
        {
            txtEventos.Invoke((MethodInvoker)delegate
            {
                txtEventos.Text += "[NUEVA CONEXION] " + txtIpCliente + ":" + puertoCliente;
                txtEventos.Text += Environment.NewLine;
            });
        }



        //FINALIZA UNA CONEXION
        private void objHeviaServer_FinConexion(string txtIpCliente, int puertoCliente)
        {
            txtEventos.Invoke((MethodInvoker)delegate 
            {
                txtEventos.Text += "[FIN CONEXION] " + txtIpCliente + ":" + puertoCliente;
                txtEventos.Text += Environment.NewLine;
            });
        }

Bueno, mi problema, ¿Como cojones consigo que en dichos eventos con solo poner: txtEventos.Text += "un texto un texto"; ya me funcione el código??

En fin, si alguien puede ponerme un ejemplo de que he de cambiar en mi clase se lo agradecería. Saludos.



P.D.: Es que sigo sin entender por que un Evento de un control boton si que funciona perfectamente, y por que con un evento de mi clase si tengo que poner el (MethodInvoke) y demás cosas...
__________________
Charlie.
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 16:15.