Título: Ayuda con delegados y objetos [C#] Publicado por: Vaagish en 6 Mayo 2014, 20:06 pm Hola, podría algún iluminado mostrarme el camino?
Código
El error es: Citar Se requiere una referencia de objeto para el campo, método o propiedad no estáticos 'Delegados.frmPrincipal.listView1' No se que hago mal, o como solucionarlo.. le di mil vueltas y nada, si no sale un error acá, sale un error allá.. Gracias! Saludos! Título: Re: Ayuda con delegados y objetos [C#] Publicado por: El Benjo en 6 Mayo 2014, 21:53 pm Creo que eso te ocurre porque no estás haciendo referencia a un objeto de Tipo "frmPrincipal" sino a la clase. Es decir, primero tienes que declarar un objeto de Tipo "frmPrincipal" y cambiar la línea:
Código
Por algo así como: Código
Dinos si eso te funciona. Saludos. Título: Re: Ayuda con delegados y objetos [C#] Publicado por: Vaagish en 6 Mayo 2014, 22:44 pm Perdón, me falto aclarar algo,, yo consigo invocar el evento.. lo que no puedo es acceder al listview1.
La cosa seria asi: Tengo una clase que pone un puerto a la escucha de clientes, cuando se conecta un nuevo cliente, crea un hilo y lo pone en una lista, o sea permite multiconexion. Esa clase funciona bien. Yo quiero agregar al usuario en un listview que esta en el formulario, no consigo acceder al listview ni con delegados. Citar Dinos si eso te funciona. Saludos. No puedo crear una nueva instancia de la clase porque me genera problemas con la clase "Socket", digamos, al crear un new frmPrincipal, tambien se crea una nueva de Socket y crash.Saludos! Título: Re: Ayuda con delegados y objetos [C#] Publicado por: El Benjo en 7 Mayo 2014, 06:27 am Ah, pues por ahí debiste empezar. La próxima vez que postees un error escribe lo que te dice el debuger, para que nosotros podamos entender de qué va exactamente. También era muy importante que mencionaras que intentas acceder al listbox desde un hilo distinto.
Lo que tienes que hacer es verificar la propiedad invokerequired del listbox antes de intentar modificarlo. Si la propiedad te da verdadero usas el método this.invoke(); para que se modifiquen los datos dentro del mismo hilo donde se creo la aplicación. Te paso dos enlaces en donde se explica cómo hacer esto: http://social.msdn.microsoft.com/Forums/vstudio/en-US/296f8e39-fa62-4540-942a-26a53da0896a/threading-invokerequired (http://social.msdn.microsoft.com/Forums/vstudio/en-US/296f8e39-fa62-4540-942a-26a53da0896a/threading-invokerequired) http://www.elguille.info/NET/vs2005/trucos/acceder_a_un_control_desde_otro_hilo.htm (http://www.elguille.info/NET/vs2005/trucos/acceder_a_un_control_desde_otro_hilo.htm) Título: Re: Ayuda con delegados y objetos [C#] Publicado por: Vaagish en 7 Mayo 2014, 16:39 pm Hola! En este momento no puedo probar,, en un rato confirmo si funciono.. pero me parece que el problema no es ese.. eso lo había visto en vb sobre manipular objetos desde otros hilos..
Me dice que el método estático no se que cosa.. El error del compilador lo puse ahí abajo de la negrita.. Saludos! Gracias! Actualización: Código
No se que pasa.. :rolleyes: Título: Re: Ayuda con delegados y objetos [C#] Publicado por: El Benjo en 7 Mayo 2014, 19:38 pm Tienes razón el problema parece ser otro. Disculpa, me dejé guiar por lo que son los errores comunes en vez de ir por lo más obvio o sencillo, pues me parece que tu problema se debe a la forma en que se declara el listview. Debes hacerlo público y estático para que sea accesible desde cualquier parte de tu proyecto.
Espero que con eso se solucione. ;D Título: Re: Ayuda con delegados y objetos [C#] Publicado por: Vaagish en 7 Mayo 2014, 19:51 pm Citar Insertar Cita Tienes razón el problema parece ser otro. Disculpa, me dejé guiar por lo que son los errores comunes en vez de ir por lo más obvio o sencillo, pues me parece que tu problema se debe a la forma en que se declara el listview. Debes hacerlo público y estático para que sea accesible desde cualquier parte de tu proyecto. Ahi esta!! Estamos cerca del problema ahora!! jeje Como declaro ese listview con esas propiedades desde la ventana de diseño?? O lo creo con código? Capaz es mas fácil crearlo con código.. Gracias Benjo! Título: Re: Ayuda con delegados y objetos [C#] Publicado por: El Benjo en 7 Mayo 2014, 20:58 pm No es necesario que lo hagas con código. En el diseñador sólo tienes que modificar la propiedad "Modifiers" y ponerla como "Public". Aunque existe otra manera que te recomiendo más, y que puedes utilizar en caso de que la forma anterior te cause algún problema. Puedes declarar un método público dentro del formulario al que llames desde el thread. En este método agregas el código que modifique el listview. De esta manera no tienes que hacerlo público.
Un saludo y espero que ahora sí se solucione. XD Título: Re: Ayuda con delegados y objetos [C#] Publicado por: Vaagish en 7 Mayo 2014, 22:44 pm Citar No es necesario que lo hagas con código. En el diseñador sólo tienes que modificar la propiedad "Modifiers" y ponerla como "Public". Aunque existe otra manera que te recomiendo más, y que puedes utilizar en caso de que la forma anterior te cause algún problema. Puedes declarar un método público dentro del formulario al que llames desde el thread. En este método agregas el código que modifique el listview. De esta manera no tienes que hacerlo público. Nop, ni una ni otra.. Mejor me replanteo el diseño de la clase y listo.. 3 días para manejar un fuck*** listview.. por eso odio todo lo relacionado a objetos.. a mi dejame con la programación orientada a procedimientos.. Saludos! Gracias!! Título: Re: Ayuda con delegados y objetos [C#] Publicado por: El Benjo en 8 Mayo 2014, 05:44 am Pues es una lástima que no hayamos podido resolver tu problema. Suerte. :)
Título: Re: Ayuda con delegados y objetos [C#] Publicado por: samuelhm en 24 Mayo 2014, 21:10 pm yo tube un problema parecido, lo solucione mas o menos así:
label1.Invoke(new Action(() =>{ label1.Text = Line; })); cambia label por tu control, y lo que quieras modificar dentro de los corchetes de Action. |