Olá pessoal,
gostaria de mostrar com esse artigo, como retornar um valor de um formulário
para outro formulário dinamicamente. Esse raciocínio pode ser aplicado em
qualquer formulário dinâmico. Muita gente precisa passar valor de um formulário
para outro, porém nesse exemplo, quero retornar o valor de um formulário para
outro ou, para quem o chamou de forma dinâmica e simples.
Requisito:
- .Net Framework
3.5
- PlataformaWindows Form;
- Linguagem C#;
- Ferramenta
Visual Studio.NET
Na prática
Primeiro de tudo, criei um projeto
do tipo Windows Application em seu Visual Studio.NET.
Depois criei mais um formulário e agora tenho Form1 e Form2. (Figura 1.1).

Figura 1.1
Negócio
O Form1.cs é o principal que chama o
Form2.cs. Depois pesquiso algum dado no Form2.cs e retorno para o Form1.cs que
já está aberto. Dentro de cada formulário, tenho um campo TextBox e um Button.
No Form1.cs tenho o campos TextBox e
Button porém o campo TextBox está desabilitado e nada pode ser escrito no
mesmo, ou seja, é necessário clicar no botão e chamar o Form2.cs para
pesquisar.
Depois de chamar o Form2.cs digito
algum valor e clico no botão, automaticamente será fechado no Form1.cs
aparecerá o valor na tela.
Layout da Tela
Form1.cs

Figura 1.2
Objetos:
TextBox.Name = textBox1
Button.Name = button1
Form2.cs

Figura 1.3
Objetos:
TextBox.Name
= textBox1
Button.Name
= button1
Código C#
Form2.cs
|
public partial class Form2 : Form
{
public String
Valor
{
get { return
textBox1.Text; }
set { textBox1.Text = value;
}
}
public Form2()
{
InitializeComponent();
}
private void
button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void
Form2_Load(object sender, EventArgs e)
{
}
}
|
Code 1.1
Criei
uma propriedade chamada Valor com get / set. O valor retornado da propriedade é
o próprio textBox1.Text. No botão do Form2.cs executo apenas o Close().
Form1.cs
|
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
Form1_Load(object sender, EventArgs e)
{
}
private void
button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
textBox1.Text
= frm.Valor;
}
}
|
Code 1.2
No botão do formulário Form1.cs,
chamei o Form2 com uma nova instância do objeto formulário, usando o
ShowDialog(). Esse é o segredo para quem quer pegar o valor da outra tela, pois
o sistema pára na linha frm.ShowDialog().
Depois que digito o valor no campo do Form2.cs e clica no botão; a tela é
fechada e continua na próxima linha perfeitamente.
Telas em Funcionamento
O formulário Form1.cs chamou o
Form2.cs pelo botão.

Figura 1.4
Digitei o valor “teste” no campo do
formulário Form2.cs. (Figura 1.5)

Figura 1.5
Depois que digitei, cliquei no botão
da tela Form2.cs. Segue o resultado. (Figura 1.6)

Figura 1.6.
Automaticamente apareceu o valor no
meu formulário já aberto. A minha dica para você é, tentar “debugar” no momento
que estiver fazendo o código, caso não tenha entendido.
Abraço e fico
por aqui.
Qualquer dúvida,
pode entrar em contato pelo site.