Forzar el contenedor para un form

28/10/2007 - 16:04 por Asier | Informe spam
Hola grupo,

Tengo un proyecto de tipo DLL que contiene una clase que tiene un metodo
publico que abre un form también del proyecto DLL. Así desde otra aplicación
que use esta clase puedo invocar al metodo publico y abrir ese form. Ese
form de alguna manera al no pertenecer al proyecto que usa la DLL no se
minimiza cuando minimizo la aplicacion, está fuera digamos del MDI del
aplicacion, etc. Quiseira saber si de alguna manera puedo forzar que este
form abierto tenga como contenedor la aplicación que le llama.

Mil gracias


Asier

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
28/10/2007 - 16:23 | Informe spam
"Asier" wrote in message
news:
Tengo un proyecto de tipo DLL que contiene una clase que tiene un metodo
publico que abre un form también del proyecto DLL. Así desde otra
aplicación que use esta clase puedo invocar al metodo publico y abrir ese
form. Ese form de alguna manera al no pertenecer al proyecto que usa la
DLL no se minimiza cuando minimizo la aplicacion, está fuera digamos del
MDI del aplicacion, etc. Quiseira saber si de alguna manera puedo forzar
que este form abierto tenga como contenedor la aplicación que le llama.



Para eso sería necesario que la aplicación llamante pasara una referencia
al contenedor. Por ejemplo, para abrir un formulario que sea contenido
dentro de un MDI, habría que ponerle al nuevo formulario la propiedad
MdiParent igual al contenedor deseado (que la aplicación llamante habría
previamente pasado a la clase de la dll). Si el contenedor no es un MDI,
sino un form normal, entonces al hacer el "Show" se pone
NuevoForm.Show(contenedor) para que el nuevo form "pertenezca" al llamante.
Dicho llamante, o contenedor, tendría que ser igualmente pasado desde el
llamante a la dll.
Respuesta Responder a este mensaje
#2 Asier
28/10/2007 - 17:25 | Informe spam
Hola,

Graqcias por tu respuesta pero solo me vale si el llamante es una
aplicacion .NET. ¿ y si es llamada desde otro entorno? Por ejemplo Java??

Saludos

"Alberto Poblacion"
escribió en el mensaje de noticias
news:
"Asier" wrote in message
news:
Tengo un proyecto de tipo DLL que contiene una clase que tiene un metodo
publico que abre un form también del proyecto DLL. Así desde otra
aplicación que use esta clase puedo invocar al metodo publico y abrir ese
form. Ese form de alguna manera al no pertenecer al proyecto que usa la
DLL no se minimiza cuando minimizo la aplicacion, está fuera digamos del
MDI del aplicacion, etc. Quiseira saber si de alguna manera puedo forzar
que este form abierto tenga como contenedor la aplicación que le llama.



Para eso sería necesario que la aplicación llamante pasara una
referencia al contenedor. Por ejemplo, para abrir un formulario que sea
contenido dentro de un MDI, habría que ponerle al nuevo formulario la
propiedad MdiParent igual al contenedor deseado (que la aplicación
llamante habría previamente pasado a la clase de la dll). Si el contenedor
no es un MDI, sino un form normal, entonces al hacer el "Show" se pone
NuevoForm.Show(contenedor) para que el nuevo form "pertenezca" al
llamante. Dicho llamante, o contenedor, tendría que ser igualmente pasado
desde el llamante a la dll.

Respuesta Responder a este mensaje
#3 Alberto Poblacion
28/10/2007 - 18:59 | Informe spam
"Asier" wrote in message
news:
Graqcias por tu respuesta pero solo me vale si el llamante es una
aplicacion .NET. ¿ y si es llamada desde otro entorno? Por ejemplo Java??



Si usas el form.Show(contenedor), "contenedor" puede ser cualquier
objeto que implemente IWin32Window. Y si miras la documentacion de
IWin32Window, verás que solo requiere un único miembro, que es la propiedad
Handle. Así que si en el entorno que sea, tal como Java, tienes una ventana
de Windows y puedes extraer su Handle, le puedes pasar este handle a tu dll
y ahi construir un objeto que implemente IWin32Window, meterle el handle, y
pasárselo al Show().
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida