Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

179
Vistas
Seleccionar programáticamente una TabPage existente en un TabControl muestra una página en blanco

Utilizo este método para crear una nueva TabPage en un TabControl ( TabManager ) si no existe una TabPage con el texto especificado, o simplemente la selecciono si ya existe:

 private void AddControls(UserControl uc, string TabCaption) { Boolean TabFound = false; if (TabManager.TabCount == 0) { TabPage tp = new(TabCaption); TabManager.TabPages.Add(tp); uc.Dock = DockStyle.Fill; tp.Controls.Add(uc); TabManager.SelectedTab = tp; } else { TabPage tp = new(TabCaption); foreach (TabPage tp1 in TabManager.TabPages) { if (tp1.Text == TabCaption) { TabFound = true; } } if (TabFound != true) { TabManager.TabPages.Add(tp); uc.Dock = DockStyle.Fill; tp.Controls.Add(uc); TabManager.SelectTab(tp); //tp.Show(); //tp.BringToFront(); } else { TabManager.SelectedTab = TabManager.TabPages[tp.Name]; return; } } }

El problema es que TabPage no está seleccionado, sino que se muestra una página vacía.

Tabcontrol página vacía

El código ofensivo parece ser:

 TabManager.SelectedTab = TabManager.TabPages[tp.Name];

Como solo mostrará una TabPage vacía.
Busqué documentación pero no encontré ninguna solución hasta ahora.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Si crea una nueva TabPage con el texto proporcionado (como en TabPage tp = new(TabCaption); ), su objeto tp no es lo mismo que una TabPage existente con el mismo título, por lo que TabManager.SelectTab(tp); no lo seleccionará (no es el mismo objeto).

Verá un fondo en blanco porque cuando usa el método TabControl.SelectedTab() y la TabPage especificada no existe, ninguna TabPage es la actual, por lo que solo ve el fondo de TabControl.


Para determinar si agregar o simplemente seleccionar una TabPage, puede verificar si TabControl no tiene TabPages (como lo está haciendo) y también verificar si ya existe una TabPage con el mismo nombre .
Puede utilizar el método TabPageCollection.IndexOfKey() para realizar esta comprobación.

Debe asignar un Nombre a su nueva TabPage, no solo un Título, como sucede cuando crea una nueva TabPage en el Diseñador.

Esto simplifica la creación y/o selección de TabPages. Su código podría ser entonces:

 private void AddControls(Control uc, string tabCaption) { if (TabManager.TabCount == 0 || TabManager.TabPages.IndexOfKey(tabCaption) < 0) { var tp = new TabPage(tabCaption); // or TabPage tp = new(tabCaption); tp.Name = tabCaption; uc.Dock = DockStyle.Fill; tp.Controls.Add(uc); TabManager.TabPages.Add(tp); } TabManager.SelectedTab = TabManager.TabPages[tabCaption]; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda