Tengo un problema extraño con respecto al dimensionamiento automático de un panel en un control de usuario. Este panel está anclado a los 4 lados del control del usuario. Pero el anclaje no siempre funciona como debería:C#: El panel anclado no cambiará el tamaño correctamente
Si el control del usuario cambia de tamaño cambiando el tamaño del formulario, los anclajes derecho e inferior no funcionan. Pero si el control se redimensiona utilizando un divisor que está en la forma, funciona correctamente. Todos los otros controles que también se ven afectados por el cambio de tamaño funcionan correctamente, solo este panel no funcionará.
No puedo ver la diferencia entre cambiar el tamaño a través de un divisor y a través de un formulario.
Configurar manualmente el tamaño en OnResize del UserControl solo funciona si el cambio de tamaño se realiza moviendo el divisor. Si el redimensionamiento se produce al redimensionar el formulario, la altura y el ancho del panel no cambiarán a los nuevos valores.
Editar: Para hacerlo más claro: El control de usuario se agrega a una TabPage y se establece en Dock = DockType.Fill.
Edit2: Para hacerlo más complicado: Esta es la jerarquía que se utiliza el control: El formulario contiene un divisor con 2 controles (A y B). (B) contiene un control de usuario (C) con un splitContainer. El contenedor dividido-> panel1 en (C) contiene un tabcontrol (D). Este control de tabulación (D) contiene un control de usuario (E) (en un tabulador). Este control de usuario (E) tiene un contenedor dividido (F) en el que se coloca otro control de usuario con tabControl (G). Este tabcontrol (G) tiene tabulaciones, y en estas páginas se ubica el control de usuario descrito (H).
Si coloco el control (H) directamente en el panel en el contenedor dividido (C) todo funciona bien. Como todos los controles que se agregan a un contenedor dividido o un tabulador están configurados en docktype = fill, no puedo ver por qué el último control tiene este problema.
¿Existe alguna limitación en el marco de Windows Forms que limite la cantidad de controles secundarios?
Editar: He cargado una Aplicación de prueba con la que puede reproducir este problema. http://rapidshare.de/files/49092516/TestApplication.zip.html Se produce solo en Vista. Win XP y 7 funcionan correctamente ... Si cambia el tamaño del formulario, el cuadro de texto con el botón "..." no cambiará de tamaño, pero si cambia el tamaño a través del splitContainer vertical, funciona.
Podría pegar el código código generado por el diseñador (donde se enlaza todos los controles al mismo tiempo)? Mi primera suposición es que su panel está anclado a un control diferente de lo que piensa (por ejemplo, uno de los paneles de la división) – Grzenio
Eso sería demasiado código para pegar, pero revisé el ancla más de una vez y está configurado correctamente (lo cual se demuestra con un cambio de tamaño de trabajo cuando se usa el divisor) –