Pregunta

Tengo un control de tabulación usado para mostrar múltiples archivos de imagen en una aplicación. Me gustaría eliminar el título de la pestaña cuando solo se muestra una pestaña, para poder usar ese espacio de pantalla para la imagen. (Esto es similar a anular la selección de " Mostrar siempre la barra de pestañas " en Firefox).

¿Es esto posible hacer con el control de tabulación? ¿O es mejor usar un control de panel cuando solo hay un archivo (pestaña) abierto?

¿Fue útil?

Solución

Sí, esto es posible. Agregue una nueva clase a su proyecto y pegue el código que se muestra a continuación. Compilar. Coloque el nuevo control desde la parte superior de la caja de herramientas en su formulario.

using System;
using System.Windows.Forms;

public class MyTabControl : TabControl {
  private int mPages = 0;
  private void checkOnePage() {
    if (IsHandleCreated) {
      int pages = mPages;
      mPages = this.TabCount;
      if ((pages == 1 && mPages > 1) || (pages > 1 && mPages == 1))
        this.RecreateHandle();
    }
  }
  protected override void OnControlAdded(ControlEventArgs e) {
    base.OnControlAdded(e);
    checkOnePage();
  }
  protected override void OnControlRemoved(ControlEventArgs e) {
    base.OnControlRemoved(e);
    checkOnePage();
  }
  protected override void WndProc(ref Message m) {
    // Hide tabs by trapping the TCM_ADJUSTRECT message
    if (m.Msg == 0x1328 && !DesignMode && this.TabCount == 1) m.Result = (IntPtr)1;
    else base.WndProc(ref m);
  }
}

Otros consejos

intente usar la respuesta dada aquí :) .. configurando la región de la pestaña

Creación de una aplicación de Windows C # .NET con múltiples vistas

No recuerdo ningún medio para ocultar la etiqueta de la pestaña. Mi recomendación:

Tenga el contenido de su pestaña en paneles. Cuando solo hay una pestaña, mueve el panel para reemplazar el control de pestaña o algo por el estilo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top