none
TextBox Não Recebe valor da Variável RRS feed

  • Pergunta

  • Boa Noite!

    Estou montando um sistema onde em um formulário eu preciso fazer uma busca e selecionar um centro de custo, para isso eu criei um outro formulário com um DataGridView e com o evento DoubleClick para selecionar os dados. Para passar e esse DoubleClick para o form anterior fiz o seguinte:

    OBS: O valor da Variavel na MessageBox é exibido perfeitamente mas quando atribuo para o TextBox ele simplesmente fica em branco como se a variável estivesse vazia.

    CÓDIGO DO FORM QUE RECEBERA OS DADOS:

    //BUSCAR O CIDADE
            public void setCentroCusto(string custo, string nome)
            {
                InitializeComponent();
                //this.txtIdCusto.Text = id;
                // this.txtCusto.Text = cidade;
                //custo = CUSTO;
                //nome = NOME;
    
                this.txtIdCusto.Text = custo;
                this.txtCusto.Text = nome;
                MessageBox.Show(nome);
            }

    CÓDIGO DO FORM QUE PASSARA OS DADOS:

    private void dataLista_DoubleClick(object sender, EventArgs e)
            {
                frmDocumento form = new frmDocumento();
                //form.CUSTO = Convert.ToString(dataLista.CurrentRow.Cells["CUSTO"].Value);
                //form.NOME = Convert.ToString(dataLista.CurrentRow.Cells["NOME"].Value);
                string par1;
                string par2;
                par1 = Convert.ToString(dataLista.CurrentRow.Cells["CUSTO"].Value);
                par2 = Convert.ToString(dataLista.CurrentRow.Cells["NOME"].Value);
                form.setCentroCusto(par1, par2);
                this.Hide();
            }

    quarta-feira, 12 de julho de 2017 01:09

Respostas

  • Lucio, bom dia!

    Você precisa atribuir o evento no seu grid, clica no seu grid, e vai em eventos, e escolha o evento CellDoubleClick.

    Se você copiar meu código, não vai dar certo mesmo, porque não é o mesmo nome do seu grid.

    Ai você da dois cliques no evento, e coloca o código que te passei dentro do evento.

    É pra ficar assim:

    private void dataLista_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                pCodigo = Convert.ToInt32(dataGridView1.CurrentRow.Cells["codigo"].Value);
                pNome = dataGridView1.CurrentRow.Cells["nome"].Value.ToString().Trim();
                selecionouCentroCusto = true;
    
                this.Close();
            }

    att.

    Felipe

    • Marcado como Resposta Lucio Henrique quinta-feira, 13 de julho de 2017 13:15
    quinta-feira, 13 de julho de 2017 11:16

Todas as Respostas

  • Boa Noite!

    Estou montando um sistema onde em um formulário eu preciso fazer uma busca e selecionar um centro de custo, para isso eu criei um outro formulário com um DataGridView e com o evento DoubleClick para selecionar os dados. Para passar e esse DoubleClick para o form anterior fiz o seguinte:

    OBS: O valor da Variavel na MessageBox é exibido perfeitamente mas quando atribuo para o TextBox ele simplesmente fica em branco como se a variável estivesse vazia.

    CÓDIGO DO FORM QUE RECEBERA OS DADOS:

    //BUSCAR O CIDADE
            public void setCentroCusto(string custo, string nome)
            {
                InitializeComponent();
                //this.txtIdCusto.Text = id;
                // this.txtCusto.Text = cidade;
                //custo = CUSTO;
                //nome = NOME;
    
                this.txtIdCusto.Text = custo;
                this.txtCusto.Text = nome;
                MessageBox.Show(nome);
            }

    CÓDIGO DO FORM QUE PASSARA OS DADOS:

    private void dataLista_DoubleClick(object sender, EventArgs e)
            {
                frmDocumento form = new frmDocumento();
                //form.CUSTO = Convert.ToString(dataLista.CurrentRow.Cells["CUSTO"].Value);
                //form.NOME = Convert.ToString(dataLista.CurrentRow.Cells["NOME"].Value);
                string par1;
                string par2;
                par1 = Convert.ToString(dataLista.CurrentRow.Cells["CUSTO"].Value);
                par2 = Convert.ToString(dataLista.CurrentRow.Cells["NOME"].Value);
                form.setCentroCusto(par1, par2);
                this.Hide();
            }

    Boa noite, Amigo.

    Aparentemente não existe nenhum erro em seu código.

    Tente colocar uma String padrão no textbox como "Olá mundo" e veja o que acontece. Já aconteceu de o style de um dos meus componentes esconder o texto.

    Abraços e boa sorte.


    • Editado j.gabrieltec quarta-feira, 12 de julho de 2017 01:57
    quarta-feira, 12 de julho de 2017 01:56
  • Lucio, bom dia!

    No seu evento DoubleClick, você não chama o form (Show/ShowDialog)?

    Ficaria melhor você passar os valores por propriedades.

    Exemplo:

    private void btnChamarForm_Click(object sender, EventArgs e)
            {
                Form4 oForm4 = new Form4();
                oForm4.ShowDialog();
    
                if (oForm4.SelecionouCentroCusto)
                {
                    txtCodigo.Text = oForm4.Codigo.ToString();
                    txtNome.Text = oForm4.Nome.Trim();
                }
            }
    
    //FORM LISTAGEM DOS CENTROS DE CUSTOS
    #region Atributos
    
            private bool selecionouCentroCusto = false;
            private int pCodigo = 0;
            private string pNome = string.Empty;
    
            #endregion
    
            #region Propriedades
    
            public bool SelecionouCentroCusto
            {
                get
                {
                    return selecionouCentroCusto;
                }
            }
    
            public int Codigo
            {
                get
                {
                    return pCodigo;
                }
            }
    
            public string Nome
            {
                get
                {
                    return pNome;
                }
            }
    
            #endregion
    
    private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                pCodigo = Convert.ToInt32(dataGridView1.CurrentRow.Cells["codigo"].Value);
                pNome = dataGridView1.CurrentRow.Cells["nome"].Value.ToString().Trim();
                selecionouCentroCusto = true;
    
                this.Close();
            }

    Aqui funcionou, perfeitamente:

    Qualquer dúvida, estou a disposição.

    att.

    Felipe

    quarta-feira, 12 de julho de 2017 11:20
  • Felipe,

    Fiz como você passou o private void dataGridView1_CellDoubleClic ficou com 0 Referencias

    E continuou sem Funcionar

    Mostrar os códigos como ficou:

    private void button2_Click(object sender, EventArgs e)
            {
                /*frmBusca.frmBuscarCentroCusto frm = new frmBusca.frmBuscarCentroCusto();
                frm.Show();*/
                frmBusca.frmBuscarCentroCusto oForm4 = new frmBusca.frmBuscarCentroCusto();
                oForm4.ShowDialog();
    
                if (oForm4.SelecionouCentroCusto)
                {
                    txtIdCusto.Text = oForm4.Codigo;
                    txtCusto.Text = oForm4.Nome;
                }
            }

    E o Outro:

    //FORM LISTAGEM DOS CENTROS DE CUSTOS
            #region Atributos
    
            private bool selecionouCentroCusto = false;
            private string pCodigo = "";
            private string pNome = string.Empty;
    
            #endregion
    
            #region Propriedades
    
            public bool SelecionouCentroCusto
            {
                get
                {
                    return selecionouCentroCusto;
                }
            }
    
            public string Codigo
            {
                get
                {
                    return pCodigo;
                }
            }
    
            public string Nome
            {
                get
                {
                    return pNome;
                }
            }
    
            #endregion
    
            private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                pCodigo = Convert.ToString(dataLista.CurrentRow.Cells["CUSTO"].Value);
                pNome = Convert.ToString(dataLista.CurrentRow.Cells["NOME"].Value);
                selecionouCentroCusto = true;
    
                this.Close();
            }

    quarta-feira, 12 de julho de 2017 21:54
  • Boa Noite!

    Estou montando um sistema onde em um formulário eu preciso fazer uma busca e selecionar um centro de custo, para isso eu criei um outro formulário com um DataGridView e com o evento DoubleClick para selecionar os dados. Para passar e esse DoubleClick para o form anterior fiz o seguinte:

    OBS: O valor da Variavel na MessageBox é exibido perfeitamente mas quando atribuo para o TextBox ele simplesmente fica em branco como se a variável estivesse vazia.

    CÓDIGO DO FORM QUE RECEBERA OS DADOS:

    //BUSCAR O CIDADE
            public void setCentroCusto(string custo, string nome)
            {
                InitializeComponent();
                //this.txtIdCusto.Text = id;
                // this.txtCusto.Text = cidade;
                //custo = CUSTO;
                //nome = NOME;
    
                this.txtIdCusto.Text = custo;
                this.txtCusto.Text = nome;
                MessageBox.Show(nome);
            }

    CÓDIGO DO FORM QUE PASSARA OS DADOS:

    private void dataLista_DoubleClick(object sender, EventArgs e)
            {
                frmDocumento form = new frmDocumento();
                //form.CUSTO = Convert.ToString(dataLista.CurrentRow.Cells["CUSTO"].Value);
                //form.NOME = Convert.ToString(dataLista.CurrentRow.Cells["NOME"].Value);
                string par1;
                string par2;
                par1 = Convert.ToString(dataLista.CurrentRow.Cells["CUSTO"].Value);
                par2 = Convert.ToString(dataLista.CurrentRow.Cells["NOME"].Value);
                form.setCentroCusto(par1, par2);
                this.Hide();
            }

    Boa noite, Amigo.

    Aparentemente não existe nenhum erro em seu código.

    Tente colocar uma String padrão no textbox como "Olá mundo" e veja o que acontece. Já aconteceu de o style de um dos meus componentes esconder o texto.

    Abraços e boa sorte.


    Fiz o Que você disse e o TextBox recebe o valor certinho, somente quando é passado de outro FORM que ele buga
    quarta-feira, 12 de julho de 2017 21:59
  • Lucio, bom dia!

    Você precisa atribuir o evento no seu grid, clica no seu grid, e vai em eventos, e escolha o evento CellDoubleClick.

    Se você copiar meu código, não vai dar certo mesmo, porque não é o mesmo nome do seu grid.

    Ai você da dois cliques no evento, e coloca o código que te passei dentro do evento.

    É pra ficar assim:

    private void dataLista_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                pCodigo = Convert.ToInt32(dataGridView1.CurrentRow.Cells["codigo"].Value);
                pNome = dataGridView1.CurrentRow.Cells["nome"].Value.ToString().Trim();
                selecionouCentroCusto = true;
    
                this.Close();
            }

    att.

    Felipe

    • Marcado como Resposta Lucio Henrique quinta-feira, 13 de julho de 2017 13:15
    quinta-feira, 13 de julho de 2017 11:16
  • Felipe,

    Bom Dia!

    Me desculpe a falta de atenção estava de cabeça quente...Fiz a correção aqui e funcionou perfeitamente muito Obrigado pela ajuda.

    quinta-feira, 13 de julho de 2017 13:15
  • Que isso, tranquilo.

    Que bom que deu certo, qualquer dúvida, estou a disposição.

    att.

    Felipe

    quinta-feira, 13 de julho de 2017 13:27