none
Alternar(mudar) valores do DataGridView RRS feed

  • 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

    terça-feira, 22 de abril de 2014 02:30

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

    quinta-feira, 24 de abril de 2014 18:50

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


    terça-feira, 22 de abril de 2014 12:14
  • 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?

    terça-feira, 22 de abril de 2014 22:15
  • 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

    quarta-feira, 23 de abril de 2014 22:06
  • 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.
    quinta-feira, 24 de abril de 2014 14:03
  • 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

    quinta-feira, 24 de abril de 2014 18:50
  • Apliquei aqui,e funcionou perfeitamente. Muito obrigado pela atenção e  por repassar seu conhecimento para nós, agradeço de verdade mesmo. Até a próxima \o
    quinta-feira, 24 de abril de 2014 21:58