Redimensionar formularios MDI hijos

05/08/2006 - 00:02 por Marijaia | Informe spam
Hola, a ver si alguien puede ayudarme con esto;
Tengo un formulario MDI padre con dos controles Panel a ambos lados.
Quisiera que en la zona central apareciesen los formularios hijos "ajustados"
tanto en la carga de los mismos como cuando el formulario padre se
redimensiona. El problema es que no se como crear la función que averigue el
tamaño de los bordes del formulario padre (si usa temas o no de escritorio el
ancho cambia) y como calcular también la dimensión vertical en función de los
menus, barras de herramientas, borde del formulario.. etc.
Muchas gracias, saludos.

Preguntas similare

Leer las respuestas

#1 Chochenager
05/08/2006 - 00:51 | Informe spam
Si no te explicas mejor, difícil saber lo que quieres.
Respuesta Responder a este mensaje
#2 Marijaia
05/08/2006 - 11:36 | Informe spam
Me explicoteo de nuevo jeje, solo quiero saber como calcular el ancho y alto
de un formulario, pero me refiero su interior "util", teniendo en cuenta el
tamaño de los bordes, barras y menus que siempre reducen el ancho y alto (y
si ademas se usan o no usan temas de escritorio también cambian algo).
Saludos

"Chochenager" escribió:

Si no te explicas mejor, difícil saber lo que quieres.


Respuesta Responder a este mensaje
#3 José Ramón
05/08/2006 - 13:26 | Informe spam
Esa información te la da el control MdiClient, en el cual se alojan todos
los

formularios hijos.Fijate en este codigo.

Una vez que tenemos referenciado el control MdiClient, podemos consultar
ancho, alto, etc, yo lo uso

para cambiar el color de fondo, pintar sobre el, centrar y ajustar los
formularios hijos...



Private ctlMDI As MdiClient

Private Sub TfrmMain_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load

Dim ctl As Control

' Loop through all of the form's controls looking

' for the control of type MdiClient.

For Each ctl In Me.Controls

Try

' Attempt to cast the control to type MdiClient.

ctlMDI = CType(ctl, MdiClient)

' Set the BackColor of the MdiClient control.

ctlMDI.BackColor = Color.CornflowerBlue

'AddHandler ctlMDI.Paint, AddressOf PintarFondo

Catch exc As InvalidCastException

' Catch and ignore the error if casting failed.

End Try

Next

End Sub
Respuesta Responder a este mensaje
#4 Chochenager
05/08/2006 - 22:11 | Informe spam
Si con esto no tienes suficiente, pues me lo dices, leetelo
detenidamente y trabájatelo un poco

Para cambiar el ancho y el alto mediante programación

Una vez definido el objeto Size, cambie sus propiedades Width o Height.
En el ejemplo siguiente, el ancho del formulario se establece en 300
píxeles desde el borde izquierdo del formulario, mientras que el alto
permanece constante.
' Visual Basic
Form1.Width = 300

// C#
Form1.Width = 300;

// C++
Form1->Width = 300;
O bien

Establezca la propiedad Size para cambiar Width o Height. Sin embargo,
como muestra el fragmento de código siguiente, este enfoque es más
complejo que el método de establecer simplemente los valores de las
propiedades Width o Height.

' Visual Basic
Form1.Size = New Size(300, Form1.Size.Height)

Para cambiar el tamaño del formulario por incrementos mediante
programación

Para incrementar el tamaño del formulario, establezca las propiedades
Width y Height. En el ejemplo siguiente, se establece un ancho de
formulario 200 píxeles mayor que la configuración actual.

' Visual Basic
Form1.Width += 200

Precaución Utilice siempre las propiedades Height o Width para
cambiar el tamaño de los formularios, a menos que establezca ambas al
mismo tiempo. El código siguiente no cambiará el tamaño del
formulario. La propiedad Size devuelve una estructura Size que contiene
una copia del alto y ancho del formulario, y el miembro X de esta
estructura se incrementa en 100; no obstante, la estructura copiada e
incrementada se descarta a continuación
Respuesta Responder a este mensaje
#5 Marijaia
07/08/2006 - 00:43 | Informe spam
Gracias por las respuestas de ambos por que gracias a los códigos aportados
por los dos el problema esta resuelto. Ahora tengo otro problema "colateral"
y es q me aparecen barras de scroll en los MDI hijos a pesar de tener la
opción Autoscroll=False pero en fin, ya conseguire cargarmelas.
Muchisimas gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida