Практическое руководство. Настройка стилей ячеек по умолчанию для элемента управления DataGridView в Windows Forms

DataGridView С помощью элемента управления можно указать стили ячеек по умолчанию для всего элемента управления и для определенных столбцов и строк. Эти значения по умолчанию передаются от уровня элемента управления к уровню столбца, затем к уровню строки и далее к уровню ячейки. Если определенное DataGridViewCellStyle свойство не задано на уровне ячейки, используется параметр свойства по умолчанию на уровне строки. Если свойство также не задано на уровне строки, используется параметр столбца по умолчанию. Наконец, если свойство также не задано на уровне столбца, используется параметр по умолчанию DataGridView . С помощью этого параметра можно избежать дублирования параметров свойств на нескольких уровнях. На каждом уровне просто укажите стили, которые отличаются от уровней над ним. Для получения дополнительной информации см. раздел Стили ячеек в контроле DataGridView Windows Forms.

В Visual Studio существует обширная поддержка этой задачи. См. также , как установить стили ячеек и форматы данных по умолчанию для элемента управления DataGridView Windows Forms с помощью конструктора.

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

  1. Задайте свойства DataGridViewCellStyle, полученного через свойство DataGridView.DefaultCellStyle.

    this.dataGridView1.DefaultCellStyle.BackColor = Color.Beige;
    this.dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 12);
    
    Me.dataGridView1.DefaultCellStyle.BackColor = Color.Beige
    Me.dataGridView1.DefaultCellStyle.Font = New Font("Tahoma", 12)
    
  2. Создайте и инициализируйте новые объекты DataGridViewCellStyle для использования несколькими строками и столбцами.

    DataGridViewCellStyle highlightCellStyle = new DataGridViewCellStyle();
    highlightCellStyle.BackColor = Color.Red;
    
    DataGridViewCellStyle currencyCellStyle = new DataGridViewCellStyle();
    currencyCellStyle.Format = "C";
    currencyCellStyle.ForeColor = Color.Green;
    
    Dim highlightCellStyle As New DataGridViewCellStyle
    highlightCellStyle.BackColor = Color.Red
    
    Dim currencyCellStyle As New DataGridViewCellStyle
    currencyCellStyle.Format = "C"
    currencyCellStyle.ForeColor = Color.Green
    
  3. DefaultCellStyle Задайте свойство определенных строк и столбцов.

    this.dataGridView1.Rows[3].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Rows[8].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle =
        currencyCellStyle;
    this.dataGridView1.Columns["TotalPrice"].DefaultCellStyle =
        currencyCellStyle;
    
    With Me.dataGridView1
        .Rows(3).DefaultCellStyle = highlightCellStyle
        .Rows(8).DefaultCellStyle = highlightCellStyle
        .Columns("UnitPrice").DefaultCellStyle = currencyCellStyle
        .Columns("TotalPrice").DefaultCellStyle = currencyCellStyle
    End With
    

Пример

private void SetDefaultCellStyles()
{
    this.dataGridView1.DefaultCellStyle.BackColor = Color.Beige;
    this.dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 12);

    DataGridViewCellStyle highlightCellStyle = new DataGridViewCellStyle();
    highlightCellStyle.BackColor = Color.Red;

    DataGridViewCellStyle currencyCellStyle = new DataGridViewCellStyle();
    currencyCellStyle.Format = "C";
    currencyCellStyle.ForeColor = Color.Green;

    this.dataGridView1.Rows[3].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Rows[8].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle =
        currencyCellStyle;
    this.dataGridView1.Columns["TotalPrice"].DefaultCellStyle =
        currencyCellStyle;
}
Private Sub SetDefaultCellStyles()

    Dim highlightCellStyle As New DataGridViewCellStyle
    highlightCellStyle.BackColor = Color.Red

    Dim currencyCellStyle As New DataGridViewCellStyle
    currencyCellStyle.Format = "C"
    currencyCellStyle.ForeColor = Color.Green

    With Me.dataGridView1
        .DefaultCellStyle.BackColor = Color.Beige
        .DefaultCellStyle.Font = New Font("Tahoma", 12)
        .Rows(3).DefaultCellStyle = highlightCellStyle
        .Rows(8).DefaultCellStyle = highlightCellStyle
        .Columns("UnitPrice").DefaultCellStyle = currencyCellStyle
        .Columns("TotalPrice").DefaultCellStyle = currencyCellStyle
    End With

End Sub

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

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

Надежное программирование

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

См. также