sábado, 7 de maio de 2011

Transferir valores entre formulários com C#

Em aplicações Windows Forms, “vira-e-mexe” surge a necessidade de se transferir algumas informações entre as janelas do sistema. Pensando nisso, vamos apresentar algumas formas de como se proceder nesta ocasião.

Abra o Visual Studio e crie um novo projeto (File > New > Project) do tipo Windows Forms Application em linguagem C#.


De forma padrão e automática, o VS cria um formulário denominado Form1. Além dele, precisamos de mais uma janela para utilizar como exemplo. Clique no menu Project > Add Windows Form e em seguida clique no botão Add para criar o outro Form.

Começando pelo Form1, acrescente dois controles da guia Common Controls (da Toolbox), um Button e um TextBox. Eles serão utilizados para informar um texto, e em seguida transferir para o Form2.


Seguindo o mesmo raciocínio, inclua um controle TextBox no Form2 para receber o valor do Form1.


Dê um duplo-clique sobre o Form2 para acessarmos o editor de código fonte e escreva a listagem a seguir:

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

    public Form2(string valor)
    {
        InitializeComponent();
        textBox1.Text = valor;
    }
}

O código acima possui dois métodos contrutores, um foi gerado automaticamente, e o outro foi escrito para complementar o primeiro exemplo do artigo. O objetivo é transferir um valor usando um método construtor no formulário de destino. Volte para o Form1, dê um duplo-clique no botão e escreva o trecho de código abaixo:

private void button1_Click(object sender, EventArgs e)
{
    Form2 formDestino = new Form2(textBox1.Text);
    formDestino.Show();
}

Rode a aplicação, digite um texto qualquer na caixa de texto e clique no botão “Abrir Form2”.


Perceba que o valor foi transferido corretamente usando o método construtor. Seguindo o artigo, vamos escrever uma outra forma de se transferir um valor entre formulários, só que desta vez, usando uma propriedade. Pare o projeto, selecione o Form2 na IDE do Visual Studio e dê um duplo-clique no meio da janela para acessar o editor do formulário. Altere o código fonte conforme a listagem abaixo.

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

    public Form2(string valor)
    {
        InitializeComponent();
        textBox1.Text = valor;
    }

    public string Propriedade { get; set; }

    private void Form2_Load(object sender, EventArgs e)
    {
        if (!this.Propriedade.Equals(""))
            textBox1.Text = this.Propriedade;
    }
}

Volte para o Form1, dê um duplo-clique no botão e altere o código de acordo com o trecho a seguir.

private void button1_Click(object sender, EventArgs e)
{
    Form2 formDestino = new Form2();
    formDestino.Propriedade = textBox1.Text;
    formDestino.Show();
}

Execute o programa e teste novamente. 
O resultado que obtive está demonstrado na imagem abaixo.


Fico por aqui, e até a próxima!

Nenhum comentário:

Postar um comentário

Deixe aqui seu comentário