none
DataGridView e CellContentDoubleClick RRS feed

  • Pergunta

  • entao, gostaria de saber como interagir com o DataGridView e o CellContentDoubleClick (acredito que seja esse)

    parto do presuposto que meu DataGridView contenha dados de uma tabela.

    após esses dados estarem na tela preciso que ao dar dois clicks em cima de uma linha abra uma tela com os valores da linha

    ou seja, preciso editar esses dados. Ao ir pra outra tela os dados da linha teriam q ficar em um TextBox, para facilitar a alteração.

     

    gostaria de saber como fazer essa iteracao. alguem da uma ideia.

    caso exita outra forma de pegar de uma BD e jogar na tela para edição podem dar ideia tbm.

     

    agradeço.

    quinta-feira, 2 de setembro de 2010 23:01

Respostas

  • Boa noite,

     

    O evento correto que é disparado ao dar dois cliques no datagridview é o evento DoubleClick, com ele você consegue fazer o que está precisando...

     

    Já para a edição dos dados, você provavelmente tera outro form com os TextBox para alteração e um botão para gravar, ao dar dois cliques você deve capturar no evento doubleclick qual foi a linha selecionado no datagridview e apartir daí passar por parâmetro os dados para a tela de alteração..

     

    Um exemplo de como usar o evento:

    Para testar crie um form e adicione um botão e um DataGridView...

    No evento do botão (Click) adicione esse código para preencher o grid (dados para testes é claro)

          DataTable dt = new DataTable();
          dt.Columns.AddRange(new DataColumn[] { new DataColumn("Coluna1"), new DataColumn("Coluna2") });
          dt.Rows.Add(new object[] { 1, "Teste" });
    
          dataGridView1.DataSource = dt;
    

     

    e no evento DoubleClick de sua datagridview adicione esse código:

          string valorDaPrimeiraColunaDaLinhaSelecionada = ((DataGridView)sender).SelectedRows[0].Cells[0].Value.ToString();
          string valorDaSegundaColunaDaLinhaSelecionada = ((DataGridView)sender).SelectedRows[0].Cells[1].Value.ToString();
          MessageBox.Show(valorDaPrimeiraColunaDaLinhaSelecionada + "\n" + valorDaSegundaColunaDaLinhaSelecionada);
    

     

    para testar, manda executar, clique no botão para prencher o grid e após isso de dois cliques na linha...

     

    Obs: para que funcione corretamente você deve setar a propriedade SelectedMode = FullRowSelected de sua datagridview...

     

     

    att

    Evandro

     

     


    Não há medalha de ouro sem suor e não há sucesso sem trabalho e dedicação!
    sexta-feira, 3 de setembro de 2010 03:13
  • Elton,

    Este artigo aborda várias maneiras de se passar dados entre forms:

    http://www.codeproject.com/KB/cs/pass_data_between_forms.aspx

    Acredito que ele vai te ajudar a resolver seu problema...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 3 de setembro de 2010 20:56
    Moderador

Todas as Respostas

  • Boa noite,

     

    O evento correto que é disparado ao dar dois cliques no datagridview é o evento DoubleClick, com ele você consegue fazer o que está precisando...

     

    Já para a edição dos dados, você provavelmente tera outro form com os TextBox para alteração e um botão para gravar, ao dar dois cliques você deve capturar no evento doubleclick qual foi a linha selecionado no datagridview e apartir daí passar por parâmetro os dados para a tela de alteração..

     

    Um exemplo de como usar o evento:

    Para testar crie um form e adicione um botão e um DataGridView...

    No evento do botão (Click) adicione esse código para preencher o grid (dados para testes é claro)

          DataTable dt = new DataTable();
          dt.Columns.AddRange(new DataColumn[] { new DataColumn("Coluna1"), new DataColumn("Coluna2") });
          dt.Rows.Add(new object[] { 1, "Teste" });
    
          dataGridView1.DataSource = dt;
    

     

    e no evento DoubleClick de sua datagridview adicione esse código:

          string valorDaPrimeiraColunaDaLinhaSelecionada = ((DataGridView)sender).SelectedRows[0].Cells[0].Value.ToString();
          string valorDaSegundaColunaDaLinhaSelecionada = ((DataGridView)sender).SelectedRows[0].Cells[1].Value.ToString();
          MessageBox.Show(valorDaPrimeiraColunaDaLinhaSelecionada + "\n" + valorDaSegundaColunaDaLinhaSelecionada);
    

     

    para testar, manda executar, clique no botão para prencher o grid e após isso de dois cliques na linha...

     

    Obs: para que funcione corretamente você deve setar a propriedade SelectedMode = FullRowSelected de sua datagridview...

     

     

    att

    Evandro

     

     


    Não há medalha de ouro sem suor e não há sucesso sem trabalho e dedicação!
    sexta-feira, 3 de setembro de 2010 03:13
  • blz cara, deu certinho..

     

    gostaria de saber agora como fazer para abrir o segundo form na tela

    devo chamar ele como? Form2.ActiveForm ?

     

    ja tenho as valores das rows em variaveis, preciso agora abrir o form para que possa receber nos textbox.

     

    vlw Pimpão.

    sexta-feira, 3 de setembro de 2010 20:54
  • Elton,

    Este artigo aborda várias maneiras de se passar dados entre forms:

    http://www.codeproject.com/KB/cs/pass_data_between_forms.aspx

    Acredito que ele vai te ajudar a resolver seu problema...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 3 de setembro de 2010 20:56
    Moderador
  • Opa,

     

    Segue o link que o André enviou, esse link mostra 3 ou 4 formas de passar dados de um form para outro!

     

    att

    Evandro


    Não há medalha de ouro sem suor e não há sucesso sem trabalho e dedicação!
    sábado, 4 de setembro de 2010 20:26
  • e ai conseguiu resolver tua dúvida?

     

     

     

    Att

    Evandro


    Não há medalha de ouro sem suor e não há sucesso sem trabalho e dedicação!
    terça-feira, 7 de setembro de 2010 03:44
  • cara, ainda nao testei.. vou ver isso apenas quinta 09/09, na faculdade

    mas se der certo, pode deixar que marco as respostas certas.

    valeu..

     

    terça-feira, 7 de setembro de 2010 15:36