Dentro de un formulario MDI se encuentra un área de cliente que aloja los formularios mdi child. ¿Cómo averiguo qué tan grande es esa área? Lo mejor que puedo llegar hasta ahora es encontrar el tamaño total del área de cliente potencial de los padres (mdiparent.ClientRectangle) y luego restar los tamaños de componentes como barras de herramientas, etc. que se llevan del área del cliente. ¿Hay una mejor manera?Tamaño/ubicación de Winforms Área de cliente MDI
10
A
Respuesta
19
No hay ninguna propiedad en un formulario que le dé acceso a la ventana del cliente MDI. Pero puede encontrarlo de nuevo así:
public MdiClient GetMdiClientWindow() {
foreach (Control ctl in this.Controls) {
if (ctl is MdiClient) return ctl as MdiClient;
}
return null;
}
Desde allí, simplemente use su propiedad Size.
1
Aquí es una variante de ese código en vb.net:
Public Function GetMdiClientWindowSize() As Size
For Each ctl As Control In Me.MdiParent.Controls
If TypeOf ctl Is MdiClient Then
Return ctl.Size
End If
Next
Return Nothing
End Function
Cuestiones relacionadas
- 1. Aplicaciones MDI en WPF
- 2. ¿Cómo evitar artefactos visuales al alojar controles de usuario WPF dentro de una aplicación WinForms MDI?
- 3. Uso de Entity Framework con el patrón de repositorio en WinForms MDI
- 4. ¿Es posible utilizar Aero Peek para niños con MDI dentro de una aplicación de winforms?
- 5. ¿Cómo minimizo una aplicación WinForms en el área de notificación?
- 6. Transparencia de ventana WPF (incluido el área no cliente)
- 7. ¿Cómo dibujar en el área no cliente?
- 8. ¿Alternativa a MDI en WPF?
- 9. ¿Cómo implemento arrastrando una ventana usando su área de cliente?
- 10. Modelo MDI o Dock Windows?
- 11. Interfaz MDI con FireMonkey
- 12. WPF MDI niños
- 13. Cambiar el fondo de un Formulario MDI
- 14. Impedir formularios duplicados de MDI secundarios
- 15. ¿Cómo obtener un tamaño de cliente de ventana de WPF?
- 16. Los controles anclados de WinForms no maximizan correctamente
- 17. Ignorar archivos generados por el cliente en la vista del área de trabajo de Perforce
- 18. WinAPI: Crear una ventana con un tamaño de área de cliente especificado
- 19. Cómo implementar mdi en una aplicación WPF
- 20. Área de pantalla vs rectángulo del área de trabajo
- 21. C# winforms: graphics.DrawImage problema
- 22. La aplicación MDI consume 100% de la CPU en inactivo
- 23. ¿El mejor enfoque para una aplicación de MDI en WPF?
- 24. Cómo obtener las coordenadas del área del cliente de la ventana
- 25. Cómo establecer el tamaño del área No cliente de una ventana Win32 (nativa)
- 26. ¿Cómo eliminar el fondo gris en el formulario padre MDI?
- 27. Área de forma irregular
- 28. Problema con el icono para crear una nueva forma de MDI hija maximizada en .NET
- 29. Visual Studio 2010 abre molestamente los documentos en el panel MDI incorrecto
- 30. Imprimir factura C# Winforms
Gracias, que funcionó impresionante. Por alguna razón tuve que restar 4 píxeles adicionales (¿probablemente por un borde de marco?), Pero puedo vivir con eso. – Jeff
@Jeff Use MdiClient.ClientSize en lugar de restar 4 píxeles –