Obtener formulario hijo segun tipo

15/10/2007 - 18:54 por Clara | Informe spam
Hola,
Tengo un formulario B del que heredan H1, H2, ... todos ellos mdichild.

Mi intencion es hacer una funcion que me retorne si uno de estos formularios
está abierto o no, recorriendo la coleccion de mdichildren del formulario
principal.

Seria algo así:

public B buscaFormulario (B t) //Aqui a t, le pasaria H1, o H2,
{
foreach (Form f in MDIPrincipal.MDIChilden)
{
if (f is t) //esto no funciona. no reconoce a t cómo parámetro
return (t)f;
else
return new t;
}
}
Se puede hacer?

Grácias

Preguntas similare

Leer las respuestas

#1 Jose Antonio
15/10/2007 - 22:03 | Informe spam
Creo que asi te funcionará:

public B buscaFormulario (B t) //Aqui a t, le pasaria H1, o H2,
{
foreach (Form f in MDIPrincipal.MDIChilden)
{
if (f is B)
return f as B;
}
}

"Clara" escribió en el mensaje de noticias
news:
Hola,
Tengo un formulario B del que heredan H1, H2, ... todos ellos mdichild.

Mi intencion es hacer una funcion que me retorne si uno de estos
formularios está abierto o no, recorriendo la coleccion de mdichildren del
formulario principal.

Seria algo así:

public B buscaFormulario (B t) //Aqui a t, le pasaria H1, o H2,
{
foreach (Form f in MDIPrincipal.MDIChilden)
{
if (f is t) //esto no funciona. no reconoce a t cómo parámetro
return (t)f;
else
return new t;
}
}
Se puede hacer?

Grácias



Respuesta Responder a este mensaje
#2 Alberto Poblacion
15/10/2007 - 22:11 | Informe spam
"Clara" wrote in message
news:
Hola,
Tengo un formulario B del que heredan H1, H2, ... todos ellos mdichild.

Mi intencion es hacer una funcion que me retorne si uno de estos
formularios está abierto o no, recorriendo la coleccion de mdichildren del
formulario principal.

Seria algo así:

public B buscaFormulario (B t) //Aqui a t, le pasaria H1, o H2,
{
foreach (Form f in MDIPrincipal.MDIChilden)
{
if (f is t) //esto no funciona. no reconoce a t cómo parámetro
return (t)f;
else
return new t;
}
}
Se puede hacer?



Si usas el Framework 2.0, lo puedes hacer con Generics, de una forma
parecida a la siguiente:

public B buscaFormulario<T>() where T:B,new()
{
foreach (Form f in MDIPrincipal.MDIChilden)
{
if (f is T)
return (T)f;
}
return new T();
}
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida