quinta-feira, 18 de setembro de 2008

C# - Chamando outros formulários

Olá pessoal, hoje irei explicar como chamar um formulário, a partir de outro formulário.

Vamos então criar um novo projeto.

Clique em File -> News -> Projects

No painel Project types, vamos escolher a opção Visual C# e no painél templates, vamos escolher Windows Forms Application.

Na caixa de texto Name, vamos colocar o seguinte nome: AplicacaoChamadaDeFormularios.
















Após dar o nome ao nosso projeto, vamos clicar em ok.

Será exibido o formulário. Nesse formulário vamos inserir um componente button e na propriedade Text, vamos colocar Chamar tela 2.





















Agora, dê um duplo clique no botão Chamar tela 2. 

Vamos inserir o seguinte código na linha em que o cursor estará, no evento Click do botão:

  Form2 newForm2 = new Form2();
  newForm2.ShowDialog();

A primeira linha, vai fazer a instância do formulário.
A segunda linha vai fazer a chamada do formulário.

Sua classe deverá ficar parecida com essa:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AplicacaoChamadaDeFormularios
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 newForm2 = new Form2();
            newForm2.ShowDialog();

        }
    }
}


Agora vamos criar um novo formulário. Para isso, vamos até a paleta Solution Explorer e clicar com o botão direito em cima do projeto. Vá em Add - > Windows Form. Com isso, estaremos adicionando um novo formulário ao nosso projeto.

Será sugerido o nome Form2.cs. Pode deixar esse mesmo nome. Clique em Add.














Será exibido o Form2. Coloque novamente um componente button e um componente label. Na propriedade text do label coloque "Fui chamado do Form1" e na propriedade Text do botão, digite "Fechar".





















Dê um duplo clique no botão Fechar e insira o seguinte código no evento click:

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }


Seu método ficará dessa maneira.

E sua classe deverá ficar semelhante a essa:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AplicacaoChamadaDeFormularios
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}


Para rodar nossa aplicação, basta apertar o botão F5. 
Ao clicar no botão da interface 1 será chamada a interface 2 e ao clicar no botão da interface 2, nossa aplicação será fechada.

Abraços e até a próxima!

8 comentários:

Sant's Art's & Montagens disse...

Vlw Heim Rapaz ajudou e muito pois ainda sou novato na area, mas é sempre bom ter umas dicas como essa. valeu mesmo.

Emerson

Luís Cunha disse...

Opa! Valeu cara... Sou estudante e estou iniciando. Esses tópicos com dicas do nível básico são os mais difíceis de encontrar... Abço.

Bruno Achon disse...

obrigado vc me ajudou bastante

Uallas Leles disse...

Obrigado, me ajudou!!

Leandro disse...

Mano!!

Tava quase jogando meu notebook na parede, obrigado mesmo pelo exemplo claro e simples para o entendimento de qualquer um, espero um dia poder ajudar as pessoas assim como vc me ajudou.

Minecraft Tutoriais disse...

Vlw cara me ajudou muito mesmo pois sou novato nessa areá

Edivan Cabral da Silva disse...

Cara poderia me ajudar, eu tenho dois forms ex: form1 e form2. No form1 tenho um botao btnadd e um datagridview... o btnadd abre o form2 para a adição de um novo produto... ao adicionar o produto como fazer para esse produto ir para o datagridview que esta no form1 ou seja quero atualizar ele se eu fechar e abrir o form1 que tem no evento load a metodo que realiza a busca no banco ele funciona perfeitamente mas se eu chamar ele do form2 nao funciona vc pode me ajudar?

Edivan Cabral da Silva disse...

se puder envie a resposta para edivan.cabral@yahoo.com.br