Tengo varias páginas de ficha de recogida. Por defecto, cuando un usuario abra las aplicaciones, la primera pestaña es la página de inicio de página de la ficha, el usuario cierre la pestaña de la página. Ahora me gustaría crear una situación en la que cuando el usuario vaya a la tira de menú, haga clic en por ejemplo la «ficha página de botón 1», luego en la pestaña «página 1» aparecerá en la ficha de control. Cualquier experiencia me puede ayudar por favor…

  • He creado las páginas de ficha de recogida. por ejemplo tabpage1,tabpage2,ficha página 3. También han botón page1 page2,pagina3. Ahora quiero crear algo así como si el usuario haga clic en el botón page1,el tabpage1 aparecerá en la ficha de control.
InformationsquelleAutor Ren | 2014-02-11

4 Comentarios

  1. 7

    Utilizar el SelectedTab() método. Tiene tres sobrecargas.


    Si usted tiene un de referencia de la ficha:

    tabControl1.SelectTab(tabPage2);

    Si sólo se conoce el índice:

    tabControl1.SelectTab(1);  //0-based index, this shows the second tab

    Si solo sabes el nombre:

    tabControl1.SelectTab("tabPage2");

    Ustedes dicen que sus usuarios pueden hacer clic en un [x] que elimina la ficha.

    Voy a asumir que es eliminado por el medio más fácil, algo así como:

    tabControl1.TabPages.Remove(tabPage1);

    No puede concentrarse en una pestaña que no forman parte de la ficha de control, por lo que tendrá que agregar de nuevo en primer lugar.

    tabControl1.TabPages.Add(tabPage1);        //add tab as last tab in tabcontrol
    tabControl1.TabPages.Insert(0, tabPage1);  //or insert it at a specific index
    
    tabControl1.SelectTab(tabPage1);
    • Funciona si el usuario no cierre la ficha, pero el caso cuando el usuario ya cerca de la ficha y desea abrirlo de nuevo haciendo clic en el botón. Este error aparece: información Adicional: Valor no puede ser nulo.
    • Puedo crear [x] en la ficha encabezado que permitirá que el usuario cierre la pestaña. Ahora quiero que el usuario abra de nuevo haciendo clic en el botón.
    • El [x] es algo que has creado tú mismo? ¿Qué código se ejecuta cuando se haga clic en él?
    • sí, lo hacen. puede referirse a esto: stackoverflow.com/questions/3183352/close-button-in-tabcontrol
    • ¡Uf, hay un montón de ejemplos en ese post (y los puestos que se vincula a). Voy a actualizar mi respuesta con una posible solución.
    • Sí, si tienes la solución, por favor hágamelo saber. Buscar esta solución para muchos días.

  2. 0

    Para seleccionar la pestaña de la página de la TabPage de control, no sólo es posible que el usuario haga clic en el título para cambiar las páginas, pero se establece el selectedTabPageIndex propiedad (o así) para hacerlo.

    Sólo tienes una oportunidad.

  3. 0

    también estoy frente a este problema. Finalmente puedo resolver el siguiente código.
    Escenario
    Mi ficha de Control tiene muchas pestañas y yo hacer una [x] signo para el cierre de esa ficha.
    en haga clic en [x] mi ficha es eliminar de la Ficha de Control.
    Ahora, cuando hago clic en el botón, abra la ficha (que fue Eliminado)
    Código

    private void openProductTab_Click(object sender, EventArgs e)
    {
     if (tabControlMdi.TabPages.Contains(tabProduct))//tab already present
      {
        tabControlMdi.SelectTab(tabProduct);  //select by name
      }
     else
      {
        tabControlMdi.TabPages.Add(tabProduct); //add removed tab
        tabControlMdi.SelectTab(tabProduct);    //select by name
      }
    }
  4. 0
     private void invoiceGenerationToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (Form form in Application.OpenForms)
            {
                if (form.GetType() == typeof(RETransactions.frmInvoicegeneration))
                {
                    form.Activate();
                    foreach (TabPage item in tabControl1.TabPages)
                    {
                        if (item.Text == "Invoice Generation")
                        {
                            tabControl1.SelectTab(item);
                        }
                    }
                    return;
                }
            }
            RETransactions.frmInvoicegeneration rTenancy = new RETransactions.frmInvoicegeneration();
            rTenancy.Show();
            rTenancy.TopLevel = false;
            TabPage tabp = new TabPage("Invoice Generation");
            tabp.Controls.Add(rTenancy);
            tabControl1.TabPages.Add(tabp);
            tabControl1.SelectTab(tabp);
            tabp.BackColor = Color.Gainsboro;
        }

    //espero que funcione … gracias

    • Gracias por contribuir a Desbordamiento de Pila. Sería de gran ayuda a los lectores si se añade algún texto que explique su código y por qué la solución es buena. Sólo el código de respuestas se desanime ya que no ayudan a la gente a aprender y a mejorar.Usted puede utilizar el editar para mejorar esta respuesta para obtener más votos y reputación!

Dejar respuesta

Please enter your comment!
Please enter your name here