Практическое руководство. Форматирование элемента управления DataGrid в Windows Forms
Обновлен: Ноябрь 2007
Примечание. |
---|
Элемент управления DataGridView заменяет элемент управления DataGrid и расширяет его функциональные возможности; однако при необходимости элемент управления DataGrid можно сохранить для обратной совместимости и использования в будущем. Дополнительные сведения см. в разделе Различия элементов управления DataGridView и DataGrid в Windows Forms. |
Выделение разными цветами различных частей элемента управления DataGrid поможет облегчить чтение и понимание сведений. Цветами можно выделять строки и столбцы. Строки и столбцы можно также скрывать или отображать по необходимости.
Форматирование элемента управления DataGrid состоит из трех основных этапов. Можно настроить свойства для создания стиля отображения данных по умолчанию. На этой основе можно затем изменить способ представления определенных таблиц во время выполнения. Наконец, можно указать столбцы, отображаемые в сетке данных, а также цвета и другие параметры форматирования для них.
На первом этапе форматирования сетки данных можно задать свойства элемента управления DataGrid. Выбранные параметры цветов и форматирования составляют основу, в которую впоследствии можно вносить изменения, исходя из требований к отображению таблиц и столбцов.
Чтобы создать стиль по умолчанию для элемента управления DataGrid
Задайте нужным образом следующие свойства:
Свойство
Описание
Свойство BackColor определяет цвет четных строк сетки. Если в свойстве AlternatingBackColor задан другой цвет, все остальные строки выделяются этим цветом (строки 1, 3, 5 и так далее).
Фоновый цвет четных строк сетки (строки 0, 2, 4, 6 и так далее).
Если свойства BackColor и AlternatingBackColor определяют цвета строк сетки, то свойство BackgroundColor определяет цвет области, незанятой строками, которая видна, только когда сетка прокручена вниз или содержит небольшое количество строк.
Стиль границы сетки — одно из перечисляемых значений свойства BorderStyle.
Фоновый цвет заголовка окна сетки, расположенного непосредственно над сеткой.
Шрифт заголовка в верхней части сетки.
Фоновый цвет заголовка окна сетки.
Шрифт текста в сетке.
Цвет шрифта, которым представлены данные в строках сетки.
Цвет линий сетки.
Стиль линий, разделяющих ячейки сетки — одно из перечисляемых значений свойства DataGridLineStyle.
Фоновый цвет заголовков строк и столбцов.
Шрифт заголовков столбцов.
Цвет заголовков столбцов сетки, включая текст самих заголовков, а также знаки плюс и минус, служащие для развертывания и свертывания строк при просмотре нескольких связанных таблиц.
Цвет текста всех ссылок в сетке данных, включая ссылки на подчиненные таблицы, имя отношения и так далее.
Фоновый цвет родительских строк в подчиненной таблице.
Цвет текста родительских строк в подчиненной таблице.
Определяет, отображаются ли названия таблицы и столбцов в родительской строке с помощью перечисления DataGridParentRowsLabelStyle.
Стандартная ширина (в точках) столбцов сетки. Установите это свойство, прежде чем сбрасывать свойства DataSource и DataMember (либо отдельно, либо с помощью метода SetDataBinding), иначе свойство не подействует.
Данное свойство не может иметь отрицательное значение.
Стандартная высота (в точках) строк сетки. Установите это свойство, прежде чем сбрасывать свойства DataSource и DataMember (либо отдельно, либо с помощью метода SetDataBinding), иначе свойство не подействует.
Данное свойство не может иметь отрицательное значение.
Ширина заголовков строк сетки.
Фоновый цвет выделенной строки или ячейки.
Цвет текста выделенной строки или ячейки.
Примечание. При настройке цветов элементов управления следует учесть, что выбор неудачных цветов (например, красный и зеленый) может затруднить работу с элементом управления. Чтобы избежать этого, используйте цвета из палитры Системные цвета.
Следующие процедуры позволяют создать элемент управления DataGrid, связанный с таблицей данных. Дополнительные сведения см. в разделе Привязка элемента управления Windows Forms DataGrid к источнику данных.
Чтобы задать стили таблицы и столбца таблицы данных программным образом
Создайте новый стиль таблицы и задайте его свойства.
Создайте стиль столбца и задайте его свойства.
Добавьте стиль столбца в коллекцию стилей столбцов стиля таблицы.
Добавьте стиль таблицы в коллекцию стилей таблиц сетки данных.
В следующем примере создайте экземпляр нового DataGridTableStyle и задайте его свойство MappingName.
Создайте новый экземпляр стиля GridColumnStyle и задайте его свойство MappingName, а также некоторые другие свойства отображения и расположения.
Повторите шаги со 2 по 6 для каждого создаваемого стиля столбца.
В следующем примере проиллюстрировано создание DataGridTextBoxColumn, поскольку в столбце должно отображаться имя. Кроме того, в класс GridColumnStylesCollection стиля таблицы добавляется стиль столбца, а в класс GridTableStylesCollection сетки данных — стиль таблицы.
Private Sub CreateAuthorFirstNameColumn() ' Add a GridTableStyle and set the MappingName ' to the name of the DataTable. Dim TSAuthors As New DataGridTableStyle() TSAuthors.MappingName = "Authors" ' Add a GridColumnStyle and set the MappingName ' to the name of a DataColumn in the DataTable. ' Set the HeaderText and Width properties. Dim TCFirstName As New DataGridTextBoxColumn() TCFirstName.MappingName = "AV_FName" TCFirstName.HeaderText = "First Name" TCFirstName.Width = 75 TSAuthors.GridColumnStyles.Add(TCFirstName) ' Add the DataGridTableStyle instance to ' the GridTableStylesCollection. myDataGrid.TableStyles.Add(TSAuthors) End Sub
private void addCustomDataTableStyle() { // Add a GridTableStyle and set the MappingName // to the name of the DataTable. DataGridTableStyle TSAuthors = new DataGridTableStyle(); TSAuthors.MappingName = "Authors"; // Add a GridColumnStyle and set the MappingName // to the name of a DataColumn in the DataTable. // Set the HeaderText and Width properties. DataGridColumnStyle TCFirstName = new DataGridTextBoxColumn(); TCFirstName.MappingName = " AV_FName"; TCFirstName.HeaderText = "First Name"; TCFirstName.Width = 75; TSAuthors.GridColumnStyles.Add(TCFirstName); // Add the DataGridTableStyle instance to // the GridTableStylesCollection. dataGrid1.TableStyles.Add(TSAuthors); }
private: void addCustomDataTableStyle() { // Add a GridTableStyle and set the MappingName // to the name of the DataTable. DataGridTableStyle^ TSAuthors = new DataGridTableStyle(); TSAuthors->MappingName = "Authors"; // Add a GridColumnStyle and set the MappingName // to the name of a DataColumn in the DataTable. // Set the HeaderText and Width properties. DataGridColumnStyle^ TCFirstName = gcnew DataGridTextBoxColumn(); TCFirstName->MappingName = "AV_FName"; TCFirstName->HeaderText = "First Name"; TCFirstName->Width = 75; TSAuthors->GridColumnStyles->Add(TCFirstName); // Add the DataGridTableStyle instance to // the GridTableStylesCollection. dataGrid1->TableStyles->Add(TSAuthors); }