1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda C# DataGridView

Discussão em 'Programação' iniciada por koKaZz, 14 de Abril de 2012. (Respostas: 3; Visualizações: 1645)

  1. koKaZz

    koKaZz Power Member

    Boas :)

    Estou a fazer um programa em C# que preeche um DataGridView com uma tabela (socios) de uma bd acess, e no programa tenho uma textbox para escrever o numero de cada sócios para o caso de querer actualizar/remover dados.
    Uma imagem para ajudar a compreender:
    [​IMG]


    E para facilitar a utilzação do programa adicionei isto para escrever automaticamente na textbox quando seleciono um socio:

    private void dgvDados_CellClick(object sender, DataGridViewCellEventArgs e)
    {
    textBox_Apa_Mod.Text = dgvDados.Rows[dgvDados.SelectedCells[0].RowIndex].Cells[0].FormattedValue.ToString();
    }
    (O zero é porque primeiro campo de cada linha é o correspondente ao Nº de Sócio)


    Agora o que eu presisava de ajuda era como fazer o inverso, ou seja se escrever na textbox para ficar automaticamente selecionado na DataGridView, alguem sabe?


    Cumps!
     
  2. brunoss

    brunoss Power Member

    1º tens que criar o evento ontextchanged ou on leave da tua textbox.
    2º Como o nº de Sócio é indeterminado tens k procurar um elemento na dataGridView. OU se garantes que os numeros sao contiguos podes indexar directamente o que é bastante mais eficiente.
    3º tens que obter o conjunto de DataGridViewCellCollection e podes indexar à coluna parta verificar se o id corresponde
    4º seleccionar a respectiva Row. Não sei qual é o comportamento mas parece-me que vais ter que deseleccionar todas as rows antes.

    Não não tenho a certeza se vai funcionar ou se existe um método que podes invocar logo sobre o datagridview para obter um elemento.
     
    Última edição: 14 de Abril de 2012
  3. koKaZz

    koKaZz Power Member

    Já esta feito!

    Acabou por ficar assim:

    private void textBox_Apa_Mod_TextChanged(object sender, EventArgs e)
    {
    for (int i = 0; i < dgvDados.Rows.Count; i++)
    {
    if (!dgvDados.Rows.IsNewRow)
    {
    if (dgvDados[0, i].Value.ToString() == textBox_Apa_Mod.Text)
    dgvDados.Rows.Selected = true;
    }
    }
    }

    Obrigado :)
     
  4. brunoss

    brunoss Power Member

    De nada parece-me uma boa solução aquela que tinha visto tinhas que ir buscar mais coisas.
     

Partilhar esta Página