none
probelma simples, porem um tanto chato... RRS feed

  • Pergunta

  • é um processo um tanto complicado, mas vou tentar simplificar o maximo possivel.

    Tenho um formulario de especialidades, que quando o cliente aperta F1 no campo, ele pega o que cliente digitou no TEXTBOX, joga em uma variavel e é transporada para outro form.

    exatamente isso! Se ele quiser pesquisar uma especialidade, ele digital por exemplo TES, aperta F1 e o resultado seria exatamente este:

    O cliente seleciona qual ele deseja, e aperta uma vez em cima da linha no data grid.
    ao escolher, ele pega o nome (teste, teste1[...]) joga em uma variavel localizada no form que o cliente utilizou para abrir o de pesquisa apertando F1 (formulario anterior). 

    até ai beleza! o problema está aqui:

    ele recebe o parametro normalmente, vai no banco faz a consulta e me retorna o valor corretamente. Porem, é que eu nao consigo exibir esse valor no TEXTBOX! ele exite em uma caixa de dialogo, mais nao exibe no textbox! tentei de todas as formas possiveis, mais nao obtive sucesso! é um tanto complicado, se alguem poder ajudar, agradeco! Se precisar de mais explicacoes estou a disposição.

    segunda-feira, 24 de abril de 2017 01:24

Respostas

  • O tipo da propriedade Descricao é string, certo? Dá algum erro na execução?

    Se você inspecionar o valor de txtDescricao.Text logo após a linha que você atribui especialidade.Descricao ao componente, ele está preenchido?

    txtDescricao.Text = especialidade.Descricao;

    Pergunto isto pois talvez no evento Load desse form você limpa o valor de txtDescricao.Text, ou seja, você sobrescreve o valor preenchido no construtor.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    segunda-feira, 24 de abril de 2017 10:30
  • Leonardo, acho que agora entendi seu problema.

    No evento CellClick você está criando uma nova instância do formulário (new FrmCadastroEspecialidade), que não tem nada a ver com a instância que foi criada no evento KeyDown.

    Se você pretende manter o mesmo form aberto e alterar informações nele, você precisa criar uma variável ou propriedade em sua classe para armazenar a instância do form no evento KeyDown. Daí no evento CellClick você vai simplesmente manipular esta variável ou propriedade, ao invés que instanciar o form novamente.

    PS: Só marque como resposta quando tiver sua dúvida solucionada, senão fica difícil localizar no fórum o que já foi resolvido e o que está pendente.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta leonardo barussi segunda-feira, 24 de abril de 2017 12:03
    segunda-feira, 24 de abril de 2017 11:45

Todas as Respostas

  • O tipo da propriedade Descricao é string, certo? Dá algum erro na execução?

    Se você inspecionar o valor de txtDescricao.Text logo após a linha que você atribui especialidade.Descricao ao componente, ele está preenchido?

    txtDescricao.Text = especialidade.Descricao;

    Pergunto isto pois talvez no evento Load desse form você limpa o valor de txtDescricao.Text, ou seja, você sobrescreve o valor preenchido no construtor.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    segunda-feira, 24 de abril de 2017 10:30
  • Bom dia Juliano obrigado por responder!

    fiz um teste, e o valor especialidade.descricao está recebendo o valor do banco! tentei executar ele em uma caixa de dialogo, e ele me mostrou o resultado, mas mostrou antes de eu fechar o FORM.

    Porem no textbox ele nao me mostra.. só uma pequena obervação, o form não está sendo executado do zero de novo, ele está aberto, automaticamente ele nao executa o evento LOAD (eu acho).

    você acha que ele deve estar dando um clear no campo?

    Você tem alguma solução em mente? Aceito dicas!

    segunda-feira, 24 de abril de 2017 11:18
  • Leonardo, acho que agora entendi seu problema.

    No evento CellClick você está criando uma nova instância do formulário (new FrmCadastroEspecialidade), que não tem nada a ver com a instância que foi criada no evento KeyDown.

    Se você pretende manter o mesmo form aberto e alterar informações nele, você precisa criar uma variável ou propriedade em sua classe para armazenar a instância do form no evento KeyDown. Daí no evento CellClick você vai simplesmente manipular esta variável ou propriedade, ao invés que instanciar o form novamente.

    PS: Só marque como resposta quando tiver sua dúvida solucionada, senão fica difícil localizar no fórum o que já foi resolvido e o que está pendente.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta leonardo barussi segunda-feira, 24 de abril de 2017 12:03
    segunda-feira, 24 de abril de 2017 11:45
  • Juliano,

    Na verdade, eu fiz a instancia somente para fazer um teste, eu apenas dou um CLOSE nele e ele voltaria para o form.

    Se eu criar essa variavel e jogar ela no KEYDOWN, ele nao iria executar todo trecho do codigo antes de abrir o outro formulario?

    Eu pensei em criar variaveis publicas e mandar buscar no banco assim que executar o evento CELLCLICK. O resultado ele passaria para essas variaveis publicas do outro form, mas nao seria a forma correta, e sim "gambiarra"..

    Mas entao, sempre que eu aperto F1 ele entra no KEYDOWN, sendo assim ele nao executa todo trecho que está lá antes de abrir o formulario em questão?

    segunda-feira, 24 de abril de 2017 11:49
  • Consegui resolver Juliano, e foi exatamente do jeito que voce disse! Eu manipulei todo codigo no KEYDOWN, eu pensei que iria executar tudo que estivesse lá antes de executar o SHOW do outro formulario!

    Muito obrigado Juliano! 

    segunda-feira, 24 de abril de 2017 12:03