none
Como percorrer um Array string e carregar os valores em texbox ? RRS feed

  • Pergunta

  • Olá, tenho uma dúvida, se puderem me ajudar ...

    Seleciono uma linha de uma datagridview e estou procurando obter os dados para carrega-los em alguns textbox. Até o momento fiz assim, carregando os valores em um array de string. Como faço para carregar?

     //  obter as células selecionadas no DataGridView
                    DataGridViewSelectedCellCollection selecionadas = dgvEndereco.SelectedCells;             
                    string res ="";
                    
                    // percorrer as células selecionadas
                    for (int i = 0; i < selecionadas.Count; i++)
                    {
                        DataGridViewCell celula = selecionadas[i];
                        int linha = celula.RowIndex;
                        int coluna = celula.ColumnIndex;

                        if (celula.Value != null)
                        {
                            res += "Linha: " + linha + "; Coluna: " + coluna + "; Valor: " + celula.Value.ToString() + "\n";                                        }
                        else
                        {
                            res += "Linha: " + linha + "; Coluna: " + coluna + "; Valor: null\n";                       
                        }                   
                    }
                   
                    MessageBox.Show(res);

                  textbox = ??


    Resultado da res


    terça-feira, 19 de maio de 2015 04:53

Respostas

  • Será mais fácil se você alterar o modo de seleção de sua DataGridView para FullRollSelect, criar uma variável inteira global (para armazenar o índice da linha selecionada) e no evento CellSelect do dataGridView você faz:
    //Pega a linha selecionada
    linhaSelecionada = e.RowIndex;
    Tendo o indice da linha selecionada e armazenada na variável global "linhaSelecionada" basta fazer
    meuTextBox.Text = DataGridView.Rows[linhaSelecionada].Cells[2].Value;
    
    //Cells[2] - é o indice da coluna que deseja pegar o valor
    Para mostrar em MessageBox

    MessageBox.Show(
    DataGridView.Rows[linhaSelecionada].Cells[0].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[1].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[2].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[3].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[4].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[5].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[6].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[7].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[8].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[9].value+"\n"
    );



    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel


    • Editado Mr. GMSOFT terça-feira, 19 de maio de 2015 11:31
    • Marcado como Resposta Gilberto Otsuka quarta-feira, 20 de maio de 2015 22:03
    terça-feira, 19 de maio de 2015 11:27

Todas as Respostas

  • Será mais fácil se você alterar o modo de seleção de sua DataGridView para FullRollSelect, criar uma variável inteira global (para armazenar o índice da linha selecionada) e no evento CellSelect do dataGridView você faz:
    //Pega a linha selecionada
    linhaSelecionada = e.RowIndex;
    Tendo o indice da linha selecionada e armazenada na variável global "linhaSelecionada" basta fazer
    meuTextBox.Text = DataGridView.Rows[linhaSelecionada].Cells[2].Value;
    
    //Cells[2] - é o indice da coluna que deseja pegar o valor
    Para mostrar em MessageBox

    MessageBox.Show(
    DataGridView.Rows[linhaSelecionada].Cells[0].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[1].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[2].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[3].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[4].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[5].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[6].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[7].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[8].value+"\n"
    DataGridView.Rows[linhaSelecionada].Cells[9].value+"\n"
    );



    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel


    • Editado Mr. GMSOFT terça-feira, 19 de maio de 2015 11:31
    • Marcado como Resposta Gilberto Otsuka quarta-feira, 20 de maio de 2015 22:03
    terça-feira, 19 de maio de 2015 11:27
  • Se a sua pergunta é se tem como fazer isso de forma direta, ou seja, selecionou preenche 11 textbox automaticamente, tipo databind do mvc. Não! Você terá que mapear um a um qual textbox recebe o que. No código do Mr. GMSOFT na parte do "MessaegBox.Show" você terá que substituir por algo assim:

    //lembrando que esse textbox devem estár definidos no design, ou você terá que cria-los via código e inseri-los no controle
    textBox1.Text = DataGridView.Rows[linhaSelecionada].Cells[0].value;
    textBox2.Text = DataGridView.Rows[linhaSelecionada].Cells[1].value;
    ...


    Att. Andre de Mattos Ferraz

    terça-feira, 19 de maio de 2015 11:57
  • Funcionou perfeitamente. Obrigado!

    Gilberto Otsuka

    quarta-feira, 20 de maio de 2015 22:03