none
Como abrir um segundo form já com determinada TabPage selecionada? RRS feed

  • Pergunta

  • Boa noite!

    Já pesquisei das mais diversas formas com as mais variadas nomenclaturas, mas até o momento ainda não consegui algo satisfatório. É o seguinte: Tenho dois forms (o principal com o TabControl [de 4 TabPages]) e outro apenas de introdução (com 4 botões específicos à seleção dos respectivos TabPages); Já consegui chamar o segundo form a partir de um clique no primeiro, mas sempre abre o TabControl na primeira aba, mas quero mudar essa aba a depender do clique em algum dos quatro botões. Já modifiquei a visibilidade do TabControl para público e outras tentativas aqui, mas até o momento não tem dado certo. Alguém com alguma dica a se tentar? Desde já agradecido. =]

    segunda-feira, 26 de outubro de 2015 20:59

Respostas

  • Instancie o form e insira o objeto dentro do TabPages, conforme Essa Thread :)

    Microsoft Technology Associate (MTA)

    • Sugerido como Resposta JAlvez42 terça-feira, 27 de outubro de 2015 00:58
    • Marcado como Resposta Marcos SJ terça-feira, 27 de outubro de 2015 09:54
    segunda-feira, 26 de outubro de 2015 22:15
  • Boa noite.

    Ou essa thread adaptando levemente o código.


    Att., Rafael Simor

    • Sugerido como Resposta JAlvez42 terça-feira, 27 de outubro de 2015 00:58
    • Marcado como Resposta Marcos SJ terça-feira, 27 de outubro de 2015 09:54
    terça-feira, 27 de outubro de 2015 00:42
  • Boa tarde.

    Vitor, no lugar de tentar acessar diretamente o TabControl, crie um método público no formulário que fará essa mudança de aba. Assim tu poderás chamar esse método de outro formulário:

    // Form que irá chamar o Form com as tabs

    Form1 intro = new avaliacao_oral_3_am.Form1(); intro.AlterarTab(); intro.Show(); this.Hide();

    No método "AlterarTab" (que será um método público do Form1), tu podes até criar um parâmetro para generalizar a mudança de tab, senão tu terias que fazer um método para cada tab (AlteraTab1(), AlteraTab2(), etc.).

    Recomendo também, já que tu estás começando com Windows Forms, a criar um botão no Form1 que chama este método de alteração de Tab's; assim, antes de testar a alteração de tab de um outro Form, tu testas do mesmo Form e tu podes ter certeza que, pelo menos, o método funciona. Assim, se der algum problema, tu saberás que é algo "entre" os Forms, não na lógica do método que tu desejas executar.


    Att., Rafael Simor

    • Marcado como Resposta Vítor - RS quarta-feira, 28 de outubro de 2015 15:41
    terça-feira, 27 de outubro de 2015 17:31

Todas as Respostas

  • Instancie o form e insira o objeto dentro do TabPages, conforme Essa Thread :)

    Microsoft Technology Associate (MTA)

    • Sugerido como Resposta JAlvez42 terça-feira, 27 de outubro de 2015 00:58
    • Marcado como Resposta Marcos SJ terça-feira, 27 de outubro de 2015 09:54
    segunda-feira, 26 de outubro de 2015 22:15
  • Boa noite.

    Ou essa thread adaptando levemente o código.


    Att., Rafael Simor

    • Sugerido como Resposta JAlvez42 terça-feira, 27 de outubro de 2015 00:58
    • Marcado como Resposta Marcos SJ terça-feira, 27 de outubro de 2015 09:54
    terça-feira, 27 de outubro de 2015 00:42
  • Olá, Rafael! Tentei, mas ainda não consegui. Talvez por ser em Visual Basic, tenho me embolado um pouco. Estou começando a programar agora e é meu primeiro Windows Form. O que eu queria seria similar a isso:

            private void button1_Click(object sender, EventArgs e)
            {
                Form1 intro = new avaliacao_oral_3_am.Form1();
                intro.Show();
                this.Hide();

                Form1.TabControl1.SelectedTab = Form1.TabPage2;

            }

    Sendo que o Form 1 é o que desejo que abra já com respectiva aba selecionada a depender do botão clicado (são quatro abas). O erro praticamente é ele não encontrar o TabControl que está no meu primeiro form (ambos já estão como públicos), mas até agora não tenho conseguido.

    terça-feira, 27 de outubro de 2015 17:16
  • Boa tarde.

    Vitor, no lugar de tentar acessar diretamente o TabControl, crie um método público no formulário que fará essa mudança de aba. Assim tu poderás chamar esse método de outro formulário:

    // Form que irá chamar o Form com as tabs

    Form1 intro = new avaliacao_oral_3_am.Form1(); intro.AlterarTab(); intro.Show(); this.Hide();

    No método "AlterarTab" (que será um método público do Form1), tu podes até criar um parâmetro para generalizar a mudança de tab, senão tu terias que fazer um método para cada tab (AlteraTab1(), AlteraTab2(), etc.).

    Recomendo também, já que tu estás começando com Windows Forms, a criar um botão no Form1 que chama este método de alteração de Tab's; assim, antes de testar a alteração de tab de um outro Form, tu testas do mesmo Form e tu podes ter certeza que, pelo menos, o método funciona. Assim, se der algum problema, tu saberás que é algo "entre" os Forms, não na lógica do método que tu desejas executar.


    Att., Rafael Simor

    • Marcado como Resposta Vítor - RS quarta-feira, 28 de outubro de 2015 15:41
    terça-feira, 27 de outubro de 2015 17:31
  • Rafael, deu certo!! Muito obrigado! Era exatamente isso que precisava saber. Criei quatro métodos e em cada um deles atribuí a função que precisava no clique de cada um dos quatro botões do meu primeiro form.

    Obrigado também ao Eduardo pela resposta anterior. Deus abençoe vocês! =]

    quarta-feira, 28 de outubro de 2015 15:41