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.