Поделиться через


Как получить и установить текущую ячейку в контроле DataGridView Windows Forms

Для взаимодействия с DataGridView часто требуется программно обнаружить, какая ячейка в настоящее время активна. Также может потребоваться изменить текущую ячейку. Эти задачи можно выполнить с помощью свойства CurrentCell.

Заметка

Не удается задать текущую ячейку в строке или столбце с его свойством Visible, равным false.

В зависимости от режима выбора DataGridView элемента управления изменение текущей ячейки может изменить выбор. Дополнительные сведения см. в разделе Режимы выбора в элементе управления DataGridView Windows Forms.

Получение текущей ячейки программным способом

  • Используйте элемент управления DataGridView и его свойство CurrentCell.

    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
    

Установка текущей ячейки программным способом

  • Задайте свойство CurrentCell элемента управления DataGridView. В следующем примере кода текущая ячейка имеет значение row 0, column 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
    

Компиляция кода

Для этого примера требуется:

  • Button - элементы управления с именами getCurrentCellButton и setCurrentCellButton. В Visual C# необходимо присоединить события Click для каждой кнопки к связанному обработчику событий в примере кода.

  • Элемент управления DataGridView с именем dataGridView1.

  • Ссылки на сборки System и System.Windows.Forms.

См. также