Autor
|
Tema: Ayuda con delegados y objetos [C#] (Leído 6,268 veces)
|
Vaagish
Desconectado
Mensajes: 875
|
Hola, podría algún iluminado mostrarme el camino? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Servidor; namespace Delegados { public delegate void NuevaConexion(); public partial class frmPrincipal : Form { SockMaster ObjetoServidor = new SockMaster (); public frmPrincipal() { InitializeComponent(); listView1.Items.Add("Nuevo item agregado"); // Aca si funciona, pero no es donde lo preciso... } public static void Server_NuevaConexion() { listView1.Items.Add("Nuevo item agregado"); // Aca no funciona, y es donde lo preciso!!! frmPrincipal.listView1.Items.Add("Nuevo item agregado"); // No funciona, no es visible el control... } } } namespace Servidor { using Delegados; class SockMaster { public SockMaster() { // Genero el evento Nueva conexion NuevaConexion NC = frmPrincipal.Server_NuevaConexion; NC(); } } }
El error es: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!
|
|
|
En línea
|
|
|
|
El Benjo
|
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: NuevaConexion NC = frmPrincipal.Server_NuevaConexion;
Por algo así como: frmPrincipal Formulario = new frmPrincipal ();NuevaConexion NC = Formulario.Server_NuevaConexion;
Dinos si eso te funciona. Saludos.
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
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. 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!
|
|
|
En línea
|
|
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
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: public static void Server_NuevaConexion() { Aca no puedo acceder al listview1, siquiera sale en la venta de ayuda... }
No se que pasa..
|
|
« Última modificación: 7 Mayo 2014, 19:25 pm por Vaagish »
|
En línea
|
|
|
|
El Benjo
|
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.
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
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!
|
|
|
En línea
|
|
|
|
El Benjo
|
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
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
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!!
|
|
|
En línea
|
|
|
|
El Benjo
|
Pues es una lástima que no hayamos podido resolver tu problema. Suerte.
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Delegados en hilos... algo raro
« 1 2 »
.NET (C#, VB.NET, ASP)
|
Zzombi
|
10
|
11,147
|
7 Diciembre 2009, 00:03 am
por [D4N93R]
|
|
|
[Tutorial] Delegados en .Net (C#)
.NET (C#, VB.NET, ASP)
|
[D4N93R]
|
0
|
7,667
|
30 Julio 2010, 17:47 pm
por [D4N93R]
|
|
|
[Solucionado][Duda][C#]Eventos y delegados
.NET (C#, VB.NET, ASP)
|
final_frontier
|
5
|
5,678
|
17 Agosto 2010, 14:55 pm
por [D4N93R]
|
|
|
Delegados Generales [Aporte]
.NET (C#, VB.NET, ASP)
|
Keyen Night
|
0
|
1,785
|
19 Febrero 2012, 22:59 pm
por Keyen Night
|
|
|
Los controles de la class principal no se actualizan con delegados... :-/
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
7
|
3,854
|
21 Diciembre 2012, 07:11 am
por Eleкtro
|
|