Ocultar botones de TabControl para administrar controles de panel astackdos

Necesito manejar varios paneles, que contienen varias máscaras de datos. Cada panel debe ser visible usando un control TreeView.

En este momento, manejo la visibilidad de los paneles manualmente, haciendo que el seleccionado sea visible y lo coloque en la parte superior.

En realidad, esto no es muy cómodo, especialmente en el diseñador de UI, ya que cuando agrego un panel completamente nuevo, tengo que cambiar el tamaño de cada panel y luego diseñarlo …

Una buena solución sería usar un TabControl, y cada panel está contenido en una TabPage. Pero no encuentro ninguna forma de ocultar los botones de TabControl, ya que ya tengo un TreeView para seleccionar elementos.

Otra solución sería una ipotethic “StackPanelControl”, donde los paneles se organizan utilizando una stack, pero no pude encontrarlo en ninguna parte.

¿Cuál es la mejor solución para manejar este tipo de UI?

Necesitas un poquito de magia API Win32. El control de tabs envía el mensaje TCM_ADJUSTRECT para permitir que la aplicación ajuste el tamaño de la pestaña. Agregue una nueva clase a su proyecto y pegue el código que se muestra a continuación. Comstackr. Coloque el nuevo control desde la parte superior de la caja de herramientas en su formulario.

Obtendrá las tabs en el momento del diseño para que pueda cambiar fácilmente de una página a otra. Las tabs están ocultas en el tiempo de ejecución, use la propiedad SelectedIndex o SelectedTab para cambiar entre “vistas”.

using System; using System.Windows.Forms; class StackPanel : TabControl { protected override void WndProc(ref Message m) { // Hide tabs by trapping the TCM_ADJUSTRECT message if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1; else base.WndProc(ref m); } } 

Una buena solución sería usar un TabControl, y cada panel está contenido en una TabPage. Pero no encuentro ninguna forma de ocultar los botones de TabControl, ya que ya tengo un TreeView para seleccionar elementos.

Para lo anterior, debe establecer las siguientes propiedades de TabControl.

 tabControl.Multiline = true; tabControl.Appearance = TabAppearance.Buttons; tabControl.ItemSize = new System.Drawing.Size(0, 1); tabControl.SizeMode = TabSizeMode.Fixed; tabControl.TabStop = false;