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


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

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

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

Чтобы программно задать стили ячейки по умолчанию

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

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

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

    With Me.dataGridView1
        .Rows(3).DefaultCellStyle = highlightCellStyle
        .Rows(8).DefaultCellStyle = highlightCellStyle
        .Columns("UnitPrice").DefaultCellStyle = currencyCellStyle
        .Columns("TotalPrice").DefaultCellStyle = currencyCellStyle
    End With
    
    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
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;
}

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

Для этого примера требуются перечисленные ниже компоненты.

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

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

См. также

Задачи

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

Ссылки

DataGridView

DataGridViewCellStyle

DataGridView.DefaultCellStyle

DataGridViewBand.DefaultCellStyle

Основные понятия

Стили ячеек элемента управления DataGridView в Windows Forms

Масштабирование элемента управления DataGridView в Windows Forms

Другие ресурсы

Базовое форматирование и оформление элемента управления DataGridView в Windows Forms