Show / Hide Table of Contents

Практическое руководство. Получение информации о выделенных пользователем ячейках, строках и столбцах элемента управления DataGridView в Windows Forms

Можно получить выделенных ячеек, строк или столбцов из DataGridView элемента управления с помощью соответствующих свойств: SelectedCells, SelectedRows, и SelectedColumns. В следующих процедурах будет получить выделенных ячеек и отображать их индексы строки и столбца в MessageBox.

Для получения выделенных ячеек в элементе управления DataGridView

  • Используйте свойство SelectedCells.

    Note

    Используйте AreAllCellsSelected метод, чтобы не происходило отображение потенциально большое количество ячеек.

    private void selectedCellsButton_Click(object sender, System.EventArgs e)
    {
        Int32 selectedCellCount =
            dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
        if (selectedCellCount > 0)
        {
            if (dataGridView1.AreAllCellsSelected(true))
            {
                MessageBox.Show("All cells are selected", "Selected Cells");
            }
            else
            {
                System.Text.StringBuilder sb =
                    new System.Text.StringBuilder();
    
                for (int i = 0;
                    i < selectedCellCount; i++)
                {
                    sb.Append("Row: ");
                    sb.Append(dataGridView1.SelectedCells[i].RowIndex
                        .ToString());
                    sb.Append(", Column: ");
                    sb.Append(dataGridView1.SelectedCells[i].ColumnIndex
                        .ToString());
                    sb.Append(Environment.NewLine);
                }
    
                sb.Append("Total: " + selectedCellCount.ToString());
                MessageBox.Show(sb.ToString(), "Selected Cells");
            }
        }
    }
    

Чтобы получить выделенные строки в элементе управления DataGridView

  • Используйте свойство SelectedRows. Чтобы пользователи могли выбрать строки, необходимо задать SelectionMode свойства FullRowSelect или RowHeaderSelect.

    private void selectedRowsButton_Click(object sender, System.EventArgs e)
    {
        Int32 selectedRowCount =
            dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
        if (selectedRowCount > 0)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
    
            for (int i = 0; i < selectedRowCount; i++)
            {
                sb.Append("Row: ");
                sb.Append(dataGridView1.SelectedRows[i].Index.ToString());
                sb.Append(Environment.NewLine);
            }
    
            sb.Append("Total: " + selectedRowCount.ToString());
            MessageBox.Show(sb.ToString(), "Selected Rows");
        }
    }
    

Чтобы получить из выбранных столбцов в элементе управления DataGridView

  • Используйте свойство SelectedColumns. Чтобы пользователи могли выбрать столбцы, необходимо задать SelectionMode свойства FullColumnSelect или ColumnHeaderSelect.

    private void selectedColumnsButton_Click(object sender, System.EventArgs e)
    {
        Int32 selectedColumnCount = dataGridView1.Columns
            .GetColumnCount(DataGridViewElementStates.Selected);
        if (selectedColumnCount > 0)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
    
            for (int i = 0; i < selectedColumnCount; i++)
            {
                sb.Append("Column: ");
                sb.Append(dataGridView1.SelectedColumns[i].Index
                    .ToString());
                sb.Append(Environment.NewLine);
            }
    
            sb.Append("Total: " + selectedColumnCount.ToString());
            MessageBox.Show(sb.ToString(), "Selected Columns");
        }
    }
    

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

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

  • Button элементы управления с именем selectedCellsButton, selectedRowsButton, и selectedColumnsButton, каждый из которых обработчики для Click присоединенного события.

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

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

Отказоустойчивость

Коллекций, описанных в этом разделе не осуществляют эффективно, когда выбраны большое количество ячеек, строк или столбцов. Дополнительные сведения об использовании этих коллекций с большими объемами данных, см. в разделе масштабирование элемента управления DataGridView в Windows Forms.

См. также

  • DataGridView
  • SelectionMode
  • AreAllCellsSelected
  • SelectedCells
  • SelectedRows
  • SelectedColumns
  • Выделение данных и операции с буфером обмена в элементе управления DataGridView в Windows Forms
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX