Практическое руководство. Установка стилей ячейки по умолчанию для элемента управления DataGridView в Windows Forms
Обновлен: Ноябрь 2007
Элемент управления DataGridView позволяет задать стили ячейки по умолчанию для всего элемента управления и определенных столбцов и строк. Эти стили по умолчанию при помощи фильтра на уровне элемента управления выбираются для уровня столбца, затем уровня строки, и затем для уровня ячейки. Если определенное свойство DataGridViewCellStyle на уровне ячейки не задано, то на уровне строки используется свойство по умолчанию. Если свойство так же не задано на уровне строки, то используется параметр столбца по умолчанию. И наконец, если свойство не задано на уровне столбца, по умолчанию используется параметр DataGridView. Использование этой настройки позволит избежать дублирования параметров свойств на нескольких уровнях. На каждом уровне просто следует указать стили, отличающиеся от вышестоящих уровней. Дополнительные сведения см. в разделе Стили ячеек элемента управления DataGridView в Windows Forms.
В Visual Studio предусмотрена мощная поддержка для этой задачи. Дополнительные сведения см. в разделах Практическое руководство. Установка стилей для ячейки по умолчанию и форматов данных в элементе управления DataGridView формы Windows Forms с помощью конструктора и Практическое руководство. Установка стилей для ячейки по умолчанию и форматов данных в элементе управления DataGridView формы Windows Forms с помощью конструктора.
Чтобы программно задать стили ячейки по умолчанию
Задайте свойства 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);
Создайте и инициализируйте новые объекты 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;
Задайте свойство 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;
}
Компиляция кода
Для этого примера требуются перечисленные ниже компоненты.
Элемент управления DataGridView с именем dataGridView1.
Ссылки на сборки System, System.Drawing и System.Windows.Forms.
Отказоустойчивость
Для достижения максимальной масштабируемости при работе с очень большими наборами данных, объекты DataGridViewCellStyle следует распределить по нескольким строкам, столбцам или ячейкам с одинаковыми стилями, чтобы не задавать свойства стилей для каждого элемента в отдельности. Кроме того, следует создать общие стройки и обращаться к ним при помощи свойства DataGridViewRowCollection.SharedRow. Дополнительные сведения см. в разделе Масштабирование элемента управления DataGridView в Windows Forms.
См. также
Задачи
Основные понятия
Стили ячеек элемента управления DataGridView в Windows Forms
Масштабирование элемента управления DataGridView в Windows Forms
Ссылки
DataGridViewBand.DefaultCellStyle
Другие ресурсы
Базовое форматирование и оформление элемента управления DataGridView в Windows Forms