Jump to content


Victor Kamarov

Member Since 22/10/2009
Offline Last Active 30/10/2009, 19:34
-----

Posts I've Made

In Topic: Mensagens Entre Executáveis

22/10/2009, 22:45

Acho que o jeito mais facil de fazer isso é com WCF através de serviços duplex.

In Topic: Como Trocar Informações Entre Forms?

22/10/2009, 22:40

estou trabalhando em numa aplicação desktop e tenho um form chamado de form1 que contem todos os campos que são preenchidos pelo usuário e nesse form pode-se fazer cadastro,pesquisa,alterar, exluir. nesse botão pesquisar inclui um código para fazer a chamada para outro form, o form2, onde ele possui as formas de pesquisar que podem ser feitas pelo usuário. no mesmo form2 tenho um botão para confirmar a forma de pesquisa que será feita, quando clicar nesse botão quero que seja exibido os dados que foram pesquisados no form1. como posso fazer isso.

espero ter explicado bem o que quero. conto com a ajuda de vcs!!!!!!!!


Acredito que a melhor forma de vc implementar isso é através de eventos.

Por exemplo, no form2 vc cria um evento PesquisaRealizada que recebe como parametro o registro em questão através de uma classe EventArgs. O form1 deve implementar um método que será chamado quando o evento do form2 for concluído.

Imaginando que "Registro" seja o objeto que vc vai transportar entre os forms...


Implementação do eventargs
public class RegistroEventArgs : EventArgs
	{
		private Registro _registro;

		public RegistroEventArgs(Registro registro)
		{
			_registro = registro;
		}

		public Registro Registro
		{
			get { return _registro; }
			set { _registro = value; }
		}
	}

Implementação do evento no form2.
No método onde o registro é localizado vc deve fazer a chamada do OnPesquisaRealizada, passando com parametro um eventargs que contenha o registro encontrado.
private event EventHandler<RegistroEventArgs> _pesquisaRealizada;

		public event EventHandler<RegistroEventArgs> PesquisaRealizada
		{
			add { _pesquisaRealizada += value; }
			remove { _pesquisaRealizada -= value; }
		}

		protected void OnPesquisaRealizada(RegistroEventArgs e)
		{
			if (_pesquisaRealizada != null)
			{
				_pesquisaRealizada(this, e);
			}
		}

form1 que recebe o resultado da consulta
private void btnPesquisar_Click(object sender, EventArgs e)
		{
			Form2 form = new Form2();
			form.PesquisaRealizada += new EventHandler<RegistroEventArgs>(form_PesquisaRealizada);
			form.Show();
		}

		void form_PesquisaRealizada(object sender, RegistroEventArgs e)
		{
			Registro registro = e.Registro;
			// faz alguma coisa...
		}

é isso ae.

IPB Skin By Virteq