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...