Compartilhar via


Como obter e definir a célula atual no controle DataGridView dos Windows Forms

A interação com o DataGridView geralmente requer que você descubra programaticamente qual célula está ativa no momento. Talvez você precise alterar a célula atual. Você pode executar essas tarefas com a CurrentCell propriedade.

Observação

Não é possível definir a célula atual em uma linha ou coluna que tenha sua Visible propriedade definida como false.

Dependendo do DataGridView modo de seleção do controle, alterar a célula atual pode alterar a seleção. Para obter mais informações, veja Modos de seleção do controle DataGridView dos Windows Forms.

Para obter a célula atual de forma programática

  • Use a DataGridView propriedade do CurrentCell controle.

    private void getCurrentCellButton_Click(object sender, System.EventArgs e)
    {
        string msg = String.Format("Row: {0}, Column: {1}",
            dataGridView1.CurrentCell.RowIndex,
            dataGridView1.CurrentCell.ColumnIndex);
        MessageBox.Show(msg, "Current Cell");
    }
    
    Private Sub getCurrentCellButton_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles getCurrentCellButton.Click
    
        Dim msg As String = String.Format("Row: {0}, Column: {1}", _
            dataGridView1.CurrentCell.RowIndex, _
            dataGridView1.CurrentCell.ColumnIndex)
        MessageBox.Show(msg, "Current Cell")
    
    End Sub
    

Para definir a célula atual de forma programática

  • Defina a CurrentCell propriedade do DataGridView controle. No exemplo de código a seguir, a célula atual é definida como linha 0, coluna 1.

    private void setCurrentCellButton_Click(object sender, System.EventArgs e)
    {
        // Set the current cell to the cell in column 1, Row 0.
        this.dataGridView1.CurrentCell = this.dataGridView1[1,0];
    }
    
    Private Sub setCurrentCellButton_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles setCurrentCellButton.Click
    
        ' Set the current cell to the cell in column 1, Row 0. 
        Me.dataGridView1.CurrentCell = Me.dataGridView1(1, 0)
    
    End Sub
    

Compilando o código

Este exemplo requer:

  • Button controles nomeados getCurrentCellButton e setCurrentCellButton. No Visual C#, você deve anexar os Click eventos de cada botão ao manipulador de eventos associado no código de exemplo.

  • Um controle DataGridView chamado dataGridView1.

  • Referências aos assemblies System e System.Windows.Forms.

Confira também