Inquiridor
Formulário de pesquisa para outros forms

Pergunta
-
Pessoal,
Estou com uma dúvida complicadinha na minha cabeça. Preciso fazer um formulário de pesquisa, que sirva para mais de uma tela do meu sistema.
Um exemplo:
Quero que o usuário, quando entrar em um campo e pressionar "Enter", abra uma tela de pesquisa, para ele buscar o valor a ser inserido naquele campo.
Agora, como usar isso em várias outras telas do meu sistema? Por exemplo, se eu quiser pesquisar o estado na tela de clientes ou de fornecedores, eu gostaria de usar o mesmo formulário de pesquisa para ambas as telas.
Como dizer ao form de pesquisa, qual o formulário que o chamou e para qual formulário ele terá que passar a informação pesquisada?
Alguém tem um exemplo, tutorial ou artigo que possa me ajudar?
Abraços!
Todas as Respostas
-
Boa tarde
Segue algumas sugestões que uso aqui na empresa de maneira dinamica
1 - nada é estático, ex: você não fix um grid de clientes ou de fornecedores e sim, você monta um interpretador de dat table e apartir do datatable, por exemplo, gerar as colunas do seu data grid view,
2 - procura colocar algo que seja 'universal' nessa tela ex: campo - pesquisar, um combo com os tipos de filtros (sugestão: usar as colunas do dataTable para gerar os filtros e as colunas assim você conseguiria trabalhar de maneira dinamica com qualquer valor possível, porém, sem valores estáticos) , um grid para listar todos os itens.
usamos aqui o seguinte:
passamos um 'select' por parametros para a tela de pesquisa, e a tela de pesquisa usa o select para carregar o datatable, e do data table eu preencho o grid com os valores gerados dinamicamente apatir das colunas x linhas do Dt, e gerar um, usamos aqui para indicar em qual campo de pesquisa, um combobox para indicar as colunas de filtro, e deixe a tela se automatizar e se ajustar conforme o seu select, ai para funcionar o que vc faria:
passar o select formatado com parametro
ou deixar o select salvo em um lugar no bd, por exemplo,
e passar um 'id' para ele ir pegar o select para o determinado caso.
preferimos manipular as Strings pois trabalhar com texto é muito mais flexivel e possui diversos métodos de trabalhar.
Espero ajudar, duvida estamos ae
Abraços ;)
-
Cara você pode fazer assim. No seu formulário de pesquisa adicione um objeto do tipo form, e de um overload em seu construtor (utilizei nomes bobos pra explicar melhor):
Form formQueChamou; Public FormDePesquisa(Form formQueChamou) { this.formQueChamou = formQueChamou; InitializeComponent(); //resto de seu construtor.... }
Agora em seus outros forms, toda vez que for chamar o form de pesquisa você passa o própio formulário como parâmetro:
FormDePesquisa frmDePesquisa = new FormDePesquisa(this); frmDePesquisa.Show();
Sendo assim, o objeto formQueChamou do seu formulário de pesquisa será uma referência do formulário que o abriu, logo você poderá enviar as informações através dele.
Espero que tenha sido claro, qualquer coisa pergunta ai!
Ao infinito e além!
-
Parece que este tópico ficou pendente então montei um exemplo na galeria para você conseguir dinamizar seus formulários de pesquisa Clique Aqui,
espero que ajude =D
abraços