Usuário com melhor resposta
Alternar(mudar) valores do DataGridView

Pergunta
-
Olá. Gostaria que os senhores me ajudassem em uma questão:
Tenho duas DataGriedView. Em uma, puxo as informações da Tabela "Membros" (Nome, ID). Ao clicar em um botão, esse Nome e Id do Membro, iria para a outra DataGried, listado como "Presente ou Ausente" (Sistema de chamada de uma academia). Aí que está a dúvida: Queria que depois que eu clicasse no botão, ele alternasse(mudasse) para o próximo registro, no caso Id_2, e assim por diante, pois no meu código, ele só fica no mesmo Nome e Id. Aqui está parte do código. Faço Orientado a Objetos, e já tenho uma classe de Conexão feita funcionando, e as classe MEMBRO feita.
Public Class frmPresença
Dim pre As New Presença
Dim mem As New Membros
Dim ds As New DataSet
Private Sub frmPresença_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ds = mem.MostrarMembros
dgvMembros.DataSource = ds.Tables(0)
dgvPresente.Columns.Add("Nome", "NOME")
dgvPresente.Columns.Add("Id", "ID")
dgvPresente.Columns.Add("Status", "STATUS")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPresente.Click
dgvPresente.Rows.Add(dgvMembros.CurrentRow.Cells(0).Value, dgvMembros.CurrentRow.Cells(1).Value, "PRESENTE")
End Sub
Private Sub dgvMembros_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMembros.CellContentClick
End Sub
Respostas
-
Sim, já estou conseguindo jogar as informações dos membros para a segunda Grid. Só que ele fica no mesmo Membro. O que não estou conseguindo é fazer ele ir alternando, ir pro próximo membro.
Olá,
fiz um exemplo básico, dê uma olhada:
private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("teste"); for (int i = 0; i < 5; i++) { DataRow linha = dt.NewRow(); linha["teste"] = i; dt.Rows.Add(linha); } dataGridView1.DataSource = dt; dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0]; //colocando foco na primeira linha/célula label1.Text = 1.ToString(); //inicializando uma label que será usado como contador }
private void button1_Click(object sender, EventArgs e) { //quando clico no botão verifico se o valor da label é menor que a qtd de linhas do grid if (Convert.ToInt32(label1.Text) < dataGridView1.Rows.Count) { //se for eu coloco o foco na próxima linha e aumento em +1 o contador dataGridView1.CurrentCell = dataGridView1.Rows[Convert.ToInt32(label1.Text)].Cells[0]; label1.Text = (Convert.ToInt32(label1.Text) + 1).ToString(); } else MessageBox.Show("Fim do grid"); }
Veja se você consegue entender e aplicar ao seu projeto.
Wennder Santos
- Marcado como Resposta Exibir na ComboBox dados do Banco de dados Sql quinta-feira, 24 de abril de 2014 21:54
Todas as Respostas
-
Olá,
antes de tentar ajuda-lo com essa situação, darei uma sugestão. Uma chamada não seria mais fácil tanto para desenvolver quanto para usar se fosse exibida somente em um grid com uma coluna mostrando o nome do aluno e outra coluna com um check box para identificar se o aluno está presente?
Wennder Santos
- Editado Wennder SantosMVP terça-feira, 22 de abril de 2014 14:47
-
Sim, até poderia ser amigo, mas como já foi traçado no Papel assim, não tem como mudar :(
Então, já explicando, já tenho a classe de Conexão feita, então não seria necessário colocar no mesmo formulário de Presença. O "MostrarMembro" no código ai em cima, é uma função já criada na classe Membros (Select Id,Nome from Membros). Caso queria ver como está o formulário, aqui está: http://imgur.com/oksp1CV
Só preciso que ele vá alternando e depois eu confirmo.. tem como ajudar?
-
Sim, até poderia ser amigo, mas como já foi traçado no Papel assim, não tem como mudar :(
Então, já explicando, já tenho a classe de Conexão feita, então não seria necessário colocar no mesmo formulário de Presença. O "MostrarMembro" no código ai em cima, é uma função já criada na classe Membros (Select Id,Nome from Membros). Caso queria ver como está o formulário, aqui está: http://imgur.com/oksp1CV
Só preciso que ele vá alternando e depois eu confirmo.. tem como ajudar?
Olá,
você já esta conseguindo jogar as informações de cada membro para a segunda grid? A sua dúvida é como fazer para que quando jogar um membro para a segunda grid o foco da primeira grid vá para o próximo membro? É isso ou você também não está conseguindo jogar os membros para segunda grid?
Wennder Santos
-
-
Sim, já estou conseguindo jogar as informações dos membros para a segunda Grid. Só que ele fica no mesmo Membro. O que não estou conseguindo é fazer ele ir alternando, ir pro próximo membro.
Olá,
fiz um exemplo básico, dê uma olhada:
private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("teste"); for (int i = 0; i < 5; i++) { DataRow linha = dt.NewRow(); linha["teste"] = i; dt.Rows.Add(linha); } dataGridView1.DataSource = dt; dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0]; //colocando foco na primeira linha/célula label1.Text = 1.ToString(); //inicializando uma label que será usado como contador }
private void button1_Click(object sender, EventArgs e) { //quando clico no botão verifico se o valor da label é menor que a qtd de linhas do grid if (Convert.ToInt32(label1.Text) < dataGridView1.Rows.Count) { //se for eu coloco o foco na próxima linha e aumento em +1 o contador dataGridView1.CurrentCell = dataGridView1.Rows[Convert.ToInt32(label1.Text)].Cells[0]; label1.Text = (Convert.ToInt32(label1.Text) + 1).ToString(); } else MessageBox.Show("Fim do grid"); }
Veja se você consegue entender e aplicar ao seu projeto.
Wennder Santos
- Marcado como Resposta Exibir na ComboBox dados do Banco de dados Sql quinta-feira, 24 de abril de 2014 21:54
-