none
Controlar numero de pestañas abiertas con TabControl RRS feed

  • Pregunta

  • Hola, estoy usando un TabControl para abrir mis contenidos dentro, cada vez que cliqueo un boton se abre una nueva pestaña (creo las TabPages por codigo usando c#).

    Lo que necesito es que cuando ya hallan 4 pestañas abiertas no siga abriendo, sino que borre la ultima de la coleccion y me agregue la nueva en su lugar (o sea, en el ultimo lugar del TabControl). De ese modo siempre estarian abiertas 4 y en ultimo lugar la que el usuario le hizo clic al boton...

    espero haberme explicado bien, es un poco confuso quizas, pero no se como controlarlo..

    Probe con un if de esta manera,

     

     

    if (tabControl1.TabCount > 4)

    {

    tabControl1.TabPages.RemoveAt(3); (no se si empieza a contar desde 0 o 1)

    tabControl1.Controls.Add(tabPage);

    }

    hago debug y veo que borra el elemento pero en el control me lo sigue mostrando abierto y sigue mostrando las pestañitas al lado.. probe refrescar el control pero nada..

    Saludos y espero me puedan ayudar

    jueves, 9 de septiembre de 2010 5:10

Respuestas

  • no se si empieza a contar desde 0 o 1

    la colecciones simpre empiezan en cero

    porque no pruebas hacer

    if  (tabControl1.TabCount > 4)
    {
        tabControl1.TabPages.RemoveAt(tabControl1.TabCount -1);
        tabControl1.Controls.Add(tabPage);
    }

    pero en el control me lo sigue mostrando abierto

    no entendi lo del abierto, o sea no agrega el nuevo tab ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta MarcosGN domingo, 12 de septiembre de 2010 2:58
    jueves, 9 de septiembre de 2010 13:14

Todas las respuestas

  • no se si empieza a contar desde 0 o 1

    la colecciones simpre empiezan en cero

    porque no pruebas hacer

    if  (tabControl1.TabCount > 4)
    {
        tabControl1.TabPages.RemoveAt(tabControl1.TabCount -1);
        tabControl1.Controls.Add(tabPage);
    }

    pero en el control me lo sigue mostrando abierto

    no entendi lo del abierto, o sea no agrega el nuevo tab ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta MarcosGN domingo, 12 de septiembre de 2010 2:58
    jueves, 9 de septiembre de 2010 13:14
  • Hola hice un ejemplo de esto, agregue un Tabcontrol en diseño y en diseño le quite todas las pestañas, luego agregue un botón AddTab y otro RemoveTab luego en el evento de cada botón puse el siguiente codigo y no ocurrio el problema.

     public partial class Form1 : Form
      {
        private int counter = 0;
        public Form1()
        {
          InitializeComponent();
        }
    
        private void AddTab_Click(object sender, EventArgs e)
        {
          if (tabSample.TabPages.Count == 0 || tabSample.TabPages.Count < 4)
          {
            tabSample.TabPages.Add("Table" + counter);
            counter++;
          }
        }
    
        private void RemoveTab_Click(object sender, EventArgs e)
        {
          if (tabSample.TabPages.Count > 0)
          {
            tabSample.TabPages.RemoveAt(counter-1);
              counter--;
          }
        }
      }
    }
    

     Saludos


    "En Busqueda del conocimiento" "DCE Estrella 3" "Practicando el conocimiento"
    jueves, 9 de septiembre de 2010 16:46