Usuário com melhor resposta
DataGridView e CellContentDoubleClick

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.
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!- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 3 de setembro de 2010 20:21
- Marcado como Resposta AndreAlvesLimaModerator sábado, 18 de setembro de 2010 13:25
-
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- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 7 de setembro de 2010 15:13
- Marcado como Resposta AndreAlvesLimaModerator sábado, 18 de setembro de 2010 13:25
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!- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 3 de setembro de 2010 20:21
- Marcado como Resposta AndreAlvesLimaModerator sábado, 18 de setembro de 2010 13:25
-
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.
-
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- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 7 de setembro de 2010 15:13
- Marcado como Resposta AndreAlvesLimaModerator sábado, 18 de setembro de 2010 13:25
-
-
-