none
Pegar o conteúdo de um textBox de outro form. RRS feed

  • Pergunta

  • Olá pessoal.

    Não tou conseguindo capturar o valor de um textBox que está em outro form.

    Consigo acessar os objetos do outro form normalmenteo acessar os objetos do outro form normalmente

    ,

    porém não consigo pegar o valor. Fragmento do código:

    void ButMostrarClick(object sender, System.EventArgs e)

    {

    Aplicaçao_DBF.frmProcurar frmPesquisa = new Aplicaçao_DBF.frmProcurar();

    if(frmPesquisa.ShowDialog(this) == DialogResult.OK)

    {

    // this.textBox1.Text = frmProc.txtPesquisa.Text;

    string nome = frmProc.txtPesquisa.Text;

    }

    else

    {

    MessageBox.Show("Cancelada. ...");

    }

    }

    Dá erro de alguma coisa não está instanciada.

    Este é o primeiro posta no novo forum .

    J. Antunes

    quarta-feira, 17 de maio de 2006 12:13

Respostas

  • Antunes,

    Pode ser. Você poderia mantê-lo aberto e tal, mas vamos fazer assim. No form que está abrindo o diálogo, crie uma propriedade Nome ou algo assim:

    // Use seus padräes aí, ‚ só um exemplo
    private string _nome;
    public string Nome
    {
      
    get { return _nome; }
      
    set { _nome = value; }
    }

    Antes de fechar o diálogo - no botão que fecha o diálogo ou evento FormClosing ele, você pega a referência do form que abriu o diálogo e passa o valor que deseja para a propriedade nome:

    pai.Nome = seuTextBox.Text;

    Aí no seu if você já terá o Nome preenchido pelo diálogo.

    Abraços,
    Francisco
    Ok,Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    quarta-feira, 17 de maio de 2006 12:39
    Moderador

Todas as Respostas

  • Antunes,

    Não seria frmPesquisa aqui?

    string nome = frmPesquisa.txtPesquisa.Text;

    Eu falo mais sobre este assunto em meu blog, veja se ajuda:

    http://thespoke.net/blogs/fbcjunior/archive/2005/09/06/TrocarValoresEntreForms.aspx

    Abraços,
    Francisco
    Ok,Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    quarta-feira, 17 de maio de 2006 12:18
    Moderador
  • Desculpe pessoal, por ser meu primeiro post no forum, me "embananei" na hora de gravar o post e acabei postando duas vezes.

    Francisco, eu fiz justamente baseado no seu exemplo e já conferi mais de uma vez meu código. Esqueci de dizer que o erro se dá em tempo de execução. Agora o erro não seria porque o form de onde vem o resultado se fecha.Veja que eu coloquei DialogResult.Ik.

    J. Antunes

    quarta-feira, 17 de maio de 2006 12:33
  • O form frmProc está criado para poder acessar o conteúdo do textbox? Outra coisa, até gostaria uma opinião do pessoal aqui do forum. Eu não acho uma boa ideia acessar o componente direto. Seria melhor você expor uma propriedade do tipo string e no get dessa propriedade você retornasse o valor do textbox.
    quarta-feira, 17 de maio de 2006 12:37
  • Antunes,

    Pode ser. Você poderia mantê-lo aberto e tal, mas vamos fazer assim. No form que está abrindo o diálogo, crie uma propriedade Nome ou algo assim:

    // Use seus padräes aí, ‚ só um exemplo
    private string _nome;
    public string Nome
    {
      
    get { return _nome; }
      
    set { _nome = value; }
    }

    Antes de fechar o diálogo - no botão que fecha o diálogo ou evento FormClosing ele, você pega a referência do form que abriu o diálogo e passa o valor que deseja para a propriedade nome:

    pai.Nome = seuTextBox.Text;

    Aí no seu if você já terá o Nome preenchido pelo diálogo.

    Abraços,
    Francisco
    Ok,Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    quarta-feira, 17 de maio de 2006 12:39
    Moderador
  • Valeu Francisco, mais uma vez. Nem precisei usar a dupla "get" e "set".

    Na verdade eu tava tentando pegar o valor. Não sei se dá para fazer isso. O que fiz foi o que vc. me passou, ou seja, passar o valor de um form para  outro.

    Obrigado.

    quarta-feira, 17 de maio de 2006 17:34
  • Antunes,

    Beleza. Onde eu escrevi "padrães" entenda "padrões" no meu último post. É que o editor aqui me dá rasteira quando eu colo código com acento hehe

    Abraços,
    Francisco
    Ok,Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    quarta-feira, 17 de maio de 2006 17:40
    Moderador