none
Abrir un formulario dentro de un TAB RRS feed

  • Pregunta

  • Buenos , tengo esta duda que no he sabido encontrar nada parecido en google , tengo un formulario y me gustaria poder abrirlo dentro de un tabPage.

    A ver si me podéis dar alguna pista de como hacerlo.


    Gracias

    martes, 12 de abril de 2016 8:30

Respuestas

  • Puedes revisar el siguiente ejemplo tambien

    https://nicolocodev.wordpress.com/2011/07/24/forms-en-paneles/


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 14 de abril de 2016 12:21
    Moderador

Todas las respuestas

  • Prueba lo siguiente como ejemplo

    private void btnOpneForm_Click(object sender, EventArgs e)
            {
                //TopLevel for form is set to false
                childForm.TopLevel = false;
                //Added new TabPage
                TabPage tbp =new TabPage();
                tabControl1.TabPages.Add(tbp);
                tbp.Controls.Add(childForm);
                //Added form to tabpage
                childForm.WindowState = FormWindowState.Maximized;
                childForm.Show();
            }

    http://www.codeproject.com/Tips/367314/Form-as-Tab


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    martes, 12 de abril de 2016 9:42
    Moderador
  • >>tengo un formulario y me gustaria poder abrirlo dentro de un tabPage.

    no lo recomiendo, es una pesima idea

    si vas a incluir pantallas en un tab crea un User Control

    estos son iguales a los forms solo que sin los margenes y la barra de titulo, puede asignarlos simplemente creando su instancia

    UserControl1 uc = new UserControl1();
    
    TabPage tpage = tabpage1.TabPages[0];
    
    tpage.Controls.Add(uc);


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 12 de abril de 2016 14:44
  • Prueba lo siguiente como ejemplo

    private void btnOpneForm_Click(object sender, EventArgs e)
            {
                //TopLevel for form is set to false
                childForm.TopLevel = false;
                //Added new TabPage
                TabPage tbp =new TabPage();
                tabControl1.TabPages.Add(tbp);
                tbp.Controls.Add(childForm);
                //Added form to tabpage
                childForm.WindowState = FormWindowState.Maximized;
                childForm.Show();
            }

    http://www.codeproject.com/Tips/367314/Form-as-Tab


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    Buenas , he probado este código y me da un error en la linia

     tbp.Controls.Add(childForm);

    Información adicional: Referencia circular del control. Un control no puede ser propietario o primario de sí mismo.

    miércoles, 13 de abril de 2016 10:51

  • Has visto el enlace que he pasado? Yo hice un ejemplo basado en el articulo y te aseguro funciona. Mira cómo tienes definidas las variables y cómo las estas usando

    childForm en el ejemplo es una variable privada a nivel de clase (form Padre)


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 13 de abril de 2016 11:18
    Moderador

  • Has visto el enlace que he pasado? Yo hice un ejemplo basado en el articulo y te aseguro funciona. Mira cómo tienes definidas las variables y cómo las estas usando

    childForm en el ejemplo es una variable privada a nivel de clase (form Padre)


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    El frmpadre es este "frmArticulosBuscar" y dentro de este tengo esto

    namespace test
    {
        public partial class frmArticulosBuscar : Form
        {
    
            frmArticuloNuevo childForm = new frmArticuloNuevo();
    
    
            public frmArticulosBuscar()
            {
                InitializeComponent();
                tabControl1.SelectedIndex = 0;
    
    
            }
    
    ...
    ....


    Entonces tengo este evento con este código 

            private void dgvArticulosBuscar_DoubleClick(object sender, EventArgs e)
            {
    
    
                this.TopLevel = false;
                //Added new TabPage
                TabPage tbp = new TabPage();
                tabControl1.TabPages.Add(tbp);
    
                tbp.Controls.Add(childForm);
    
                //Added form to tabpage
                this.WindowState = FormWindowState.Maximized;
                this.Show();
    
    }


    El error que me da es en la linia tbp.Controls.Add(childForm); y me dice 

    Excepción no controlada del tipo 'System.ArgumentException' en System.Windows.Forms.dll
    Información adicional: No se puede agregar un control de nivel superior a un control.

    Gracias,

    jueves, 14 de abril de 2016 10:31
  • Puedes revisar el siguiente ejemplo tambien

    https://nicolocodev.wordpress.com/2011/07/24/forms-en-paneles/


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 14 de abril de 2016 12:21
    Moderador