Usuário com melhor resposta
Como abrir um datagridview clicando em uma informação de outro datagridview?

Pergunta
-
Por exemplo:
É o seguinte: após fazer o cadastro do pedido, deverá aparecer no datagridview o 'nome' da pessoa(que será preenchido no cadastro do pedido) e quando eu clicar no nome da pessoa, deverá abrir outro datagridview com todas as informações que foram preenchidas... Pelo o que eu vi, faz-se isso com select, mas não sei usar. Como faço? Aonde coloco esse código?
Respostas
-
Assim:
Procure o Evento do DataGridView
if (e.RowIndex > -1 && e.ColumnIndex > -1) { int Id = 0; if (int.TryParse(GridViewPeople.Rows[e.RowIndex].Cells[0].Value.ToString(), out Id)) { FrmPeopleUpdate frm = new FrmPeopleUpdate(Id); frm.ShowDialog(); if (frm.OnChangeUpdate) { Call_Grid(); } frm.Dispose(); } }
Perceba que eu pega o e.RowIndex Selecionado e pega a Cells[0] que seria a coluna do codigo da pessoa! ( eu escondi o codigo colocando o coluna com o menor tamanho então só aparece o nome).
Crie um Construtor com paramentro no FrmPeopleUpdate e passa o Id por ele! assim
protected int GetId { get; set; } public FrmPeopleUpdate() { InitializeComponent(); GetId = 0; } public FrmPeopleUpdate(int Id) { InitializeComponent(); GetId = Id; }
E no Form_Load desse mesmo eu confiro se o GetId é > 0 ai eu exibo os dados!
assim
private void FrmPeopleUpdate_Load(object sender, EventArgs e) { if (GetId > 0) { //com esse código e gero o grid com todos os dados } CmbPhoneType.BackColor = Color.White; }
Fúlvio Cezar Canducci Dias
- Editado Fulvio Cezar Canducci Dias segunda-feira, 28 de outubro de 2013 23:07
- Sugerido como Resposta Fulvio Cezar Canducci Dias segunda-feira, 28 de outubro de 2013 23:07
- Marcado como Resposta Giovani Cr quinta-feira, 31 de outubro de 2013 13:07
-
- Marcado como Resposta Giovani Cr quinta-feira, 31 de outubro de 2013 13:07
Todas as Respostas
-
Assim:
Procure o Evento do DataGridView
if (e.RowIndex > -1 && e.ColumnIndex > -1) { int Id = 0; if (int.TryParse(GridViewPeople.Rows[e.RowIndex].Cells[0].Value.ToString(), out Id)) { FrmPeopleUpdate frm = new FrmPeopleUpdate(Id); frm.ShowDialog(); if (frm.OnChangeUpdate) { Call_Grid(); } frm.Dispose(); } }
Perceba que eu pega o e.RowIndex Selecionado e pega a Cells[0] que seria a coluna do codigo da pessoa! ( eu escondi o codigo colocando o coluna com o menor tamanho então só aparece o nome).
Crie um Construtor com paramentro no FrmPeopleUpdate e passa o Id por ele! assim
protected int GetId { get; set; } public FrmPeopleUpdate() { InitializeComponent(); GetId = 0; } public FrmPeopleUpdate(int Id) { InitializeComponent(); GetId = Id; }
E no Form_Load desse mesmo eu confiro se o GetId é > 0 ai eu exibo os dados!
assim
private void FrmPeopleUpdate_Load(object sender, EventArgs e) { if (GetId > 0) { //com esse código e gero o grid com todos os dados } CmbPhoneType.BackColor = Color.White; }
Fúlvio Cezar Canducci Dias
- Editado Fulvio Cezar Canducci Dias segunda-feira, 28 de outubro de 2013 23:07
- Sugerido como Resposta Fulvio Cezar Canducci Dias segunda-feira, 28 de outubro de 2013 23:07
- Marcado como Resposta Giovani Cr quinta-feira, 31 de outubro de 2013 13:07
-
Coloquei os códigos lá e apareceu 3 erros:
Error 1 The name 'CmbPhoneType' does not exist in the current context C:\Users\CLAUDIO\Documents\Programacao\Programas\Vendas\Vendas\FrmPeopleUpdate.cs 34 13 Vendas
Error 2 'Vendas.FrmPeopleUpdate' does not contain a definition for 'OnChangeUpdate' and no extension method 'OnChangeUpdate' accepting a first argument of type 'Vendas.FrmPeopleUpdate' could be found (are you missing a using directive or an assembly reference?) C:\Users\CLAUDIO\Documents\Programacao\Programas\Vendas\Vendas\caixa.cs 45 29 Vendas
Error 3 The name 'Call_Grid' does not exist in the current context C:\Users\CLAUDIO\Documents\Programacao\Programas\Vendas\Vendas\caixa.cs 47 25 Vendas
-
- Marcado como Resposta Giovani Cr quinta-feira, 31 de outubro de 2013 13:07