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

Leer métodos de interface

Estas en el tema de Leer métodos de interface en el foro de .NET en Foros del Web. Hola Colegas, tengo dos capas, una llamada PRESENTACION que es donde tengo un menú MDI y tengo otra capa que se llama TODOS. Para, desde ...
  #1 (permalink)  
Antiguo 22/08/2011, 13:40
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años
Puntos: 8
Pregunta Leer métodos de interface

Hola Colegas, tengo dos capas, una llamada PRESENTACION que es donde tengo un menú MDI y tengo otra capa que se llama TODOS.

Para, desde el MDI de presentación invocar el método guardar que está en mi pantalla primero implemento los métodos de la interface en mi pantalla de TODOS y luego desde el MDI de PRESENTACION hago lo siguiente: ((IBase)this.ActiveMdiChild).onSave(); donde IBase es mi interface y ActiveMdiChil es la pantalla que esta activa y todo bien.

Ahora tengo la siguiente necesidad, desde una pantalla de TODOS invocar un método de una interface que esta implementada en el MDI, es decir, necesito invocar un método de una interface desde mi pantalla de la capa TODOS y ejecutar el método en el MDI de la capa de PRESENTACION.

Como leo ese método, es algo así como esto IMenu.onDatos(); pero no exactamente asi porque no me funciona espero haberme dado a entender.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #2 (permalink)  
Antiguo 22/08/2011, 14:44
 
Fecha de Ingreso: agosto-2011
Ubicación: Buenos Aires
Mensajes: 78
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: Leer métodos de interface

Probá de rearmar la explicación ó subir algún ejemplo simple de código. Para pode comprender mejor digo.
__________________
www.orientadoanet.com
  #3 (permalink)  
Antiguo 22/08/2011, 14:58
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años
Puntos: 8
Respuesta: Leer métodos de interface

Bien.

Empezare por la interface:

Que llamaremos IBase y tiene sus métodos abstractos
Código:
public interface IBase
{
    void onPrint();
    void onExit();
}
En mi pantalla frmForma de la capa TODOS heredo la interface:
Código:
public partial class frmForma : XtraForm, IBase
{

public void onExit()
{
    this.Close();
}

public void onSave()
{
    //Guarda la informacion
}
}
Luego desde mi MDI frmMain de la capa de presentación tengo un botón de Guardar y de Salir, y cuando le doy click al botón de Guardar lo hago de la siguiente manera:
Código:
private void iSave_ItemClick(object sender, ItemClickEventArgs e)
{
((IBase)this.ActiveMdiChild).onSave();
}

Y con esto pues ejecuto el método onSave() de mi pantalla frmForma y todo funciona perfectamente bien.

Ahora lo que necesito es hacerlo al revés, es decir, necesito, desde mi pantalla frmForma ejecutar un método de una interface que esta implementada en mi MDI frmMain y ahí esdonde estoy atorado, es decir, lo único que necesito es saber como ejecutar un método de una interface, algo asi como esto:
Código:
((IBase)this.ActiveMdiChild).onSave();
pero sin el ActiveMdiChild

Espero haber sido mas explicito y ver si alguien me comenta su punto de vista.

o bien, saber como ejecutar un metodo de mi frmMain desde mi frmForm que ambos estan en capas diferentes.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #4 (permalink)  
Antiguo 22/08/2011, 18:00
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 22 años, 3 meses
Puntos: 15
Respuesta: Leer métodos de interface

Cuando instancias el MdiChild pegale quien es el parent usando la propiedad MdiParent

ChildForm child = ChildForm();
child.MdiParent = this;

De este modo el Child tendra al parent para hacer uso de el. OJO la propiedad MdiParent es de tipo Form osea el base asi que para hacer uso de los métodos del Parent debes convertir:

((ParentForm)child.MdiParent).ParentMethod();

Aca te dejo más información:
http://msdn.microsoft.com/es-es/libr...v=VS.100).aspx

Etiquetas: interface
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 07:32.