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


DataGridTableStyle Класс

Определение

Представляет таблицу, нарисованную элементом управления DataGrid во время выполнения.

public ref class DataGridTableStyle : System::ComponentModel::Component, System::Windows::Forms::IDataGridEditingService
public class DataGridTableStyle : System.ComponentModel.Component, System.Windows.Forms.IDataGridEditingService
type DataGridTableStyle = class
    inherit Component
    interface IDataGridEditingService
Public Class DataGridTableStyle
Inherits Component
Implements IDataGridEditingService
Наследование
DataGridTableStyle
Реализации

Примеры

В следующем примере кода создаются два DataGridTableStyle экземпляра и присваивается свойству MappingName каждого объекта TableName значение объекта DataTable в DataSet. Затем в примере добавляются DataGridColumnStyle объекты в GridColumnStylesCollection объект каждого DataGridTableStyleобъекта . Пример выполнения см. в System.Windows.Forms.DataGrid этом примере.

void AddCustomDataTableStyle()
{
   
   /* Create a new DataGridTableStyle and set
         its MappingName to the TableName of a DataTable. */
   DataGridTableStyle^ ts1 = gcnew DataGridTableStyle;
   ts1->MappingName = "Customers";
   
   /* Add a GridColumnStyle and set its MappingName 
         to the name of a DataColumn in the DataTable. 
         Set the HeaderText and Width properties. */
   DataGridColumnStyle^ boolCol = gcnew DataGridBoolColumn;
   boolCol->MappingName = "Current";
   boolCol->HeaderText = "IsCurrent Customer";
   boolCol->Width = 150;
   ts1->GridColumnStyles->Add( boolCol );
   
   // Add a second column style.
   DataGridColumnStyle^ TextCol = gcnew DataGridTextBoxColumn;
   TextCol->MappingName = "custName";
   TextCol->HeaderText = "Customer Name";
   TextCol->Width = 250;
   ts1->GridColumnStyles->Add( TextCol );
   
   // Create the second table style with columns.
   DataGridTableStyle^ ts2 = gcnew DataGridTableStyle;
   ts2->MappingName = "Orders";
   
   // Change the colors.
   ts2->ForeColor = Color::Yellow;
   ts2->AlternatingBackColor = Color::Blue;
   ts2->BackColor = Color::Blue;
   
   // Create new DataGridColumnStyle objects.
   DataGridColumnStyle^ cOrderDate = gcnew DataGridTextBoxColumn;
   cOrderDate->MappingName = "OrderDate";
   cOrderDate->HeaderText = "Order Date";
   cOrderDate->Width = 100;
   ts2->GridColumnStyles->Add( cOrderDate );
   PropertyDescriptorCollection^ pcol = this->BindingContext[ myDataSet,"Customers.custToOrders" ]->GetItemProperties();
   DataGridColumnStyle^ csOrderAmount = gcnew DataGridTextBoxColumn( pcol[ "OrderAmount" ],"c",true );
   csOrderAmount->MappingName = "OrderAmount";
   csOrderAmount->HeaderText = "Total";
   csOrderAmount->Width = 100;
   ts2->GridColumnStyles->Add( csOrderAmount );
   
   // Add the DataGridTableStyle objects to the collection.
   myDataGrid->TableStyles->Add( ts1 );
   myDataGrid->TableStyles->Add( ts2 );
}
private void AddCustomDataTableStyle()
   {
      /* Create a new DataGridTableStyle and set
      its MappingName to the TableName of a DataTable. */
      DataGridTableStyle ts1 = new DataGridTableStyle();
      ts1.MappingName = "Customers";

      /* Add a GridColumnStyle and set its MappingName 
      to the name of a DataColumn in the DataTable. 
      Set the HeaderText and Width properties. */
      
      DataGridColumnStyle boolCol = new DataGridBoolColumn();
      boolCol.MappingName = "Current";
      boolCol.HeaderText = "IsCurrent Customer";
      boolCol.Width = 150;
      ts1.GridColumnStyles.Add(boolCol);
      
      // Add a second column style.
      DataGridColumnStyle TextCol = new DataGridTextBoxColumn();
      TextCol.MappingName = "custName";
      TextCol.HeaderText = "Customer Name";
      TextCol.Width = 250;
      ts1.GridColumnStyles.Add(TextCol);

      // Create the second table style with columns.
      DataGridTableStyle ts2 = new DataGridTableStyle();
      ts2.MappingName = "Orders";
      // Change the colors.
      ts2.ForeColor = Color.Yellow;
      ts2.AlternatingBackColor = Color.Blue;
      ts2.BackColor = Color.Blue;
      
      // Create new DataGridColumnStyle objects.
      DataGridColumnStyle cOrderDate = 
      new DataGridTextBoxColumn();
      cOrderDate.MappingName = "OrderDate";
      cOrderDate.HeaderText = "Order Date";
      cOrderDate.Width = 100;
      ts2.GridColumnStyles.Add(cOrderDate);

      PropertyDescriptorCollection pcol = this.BindingContext
      [myDataSet, "Customers.custToOrders"].GetItemProperties();
      
      DataGridColumnStyle csOrderAmount = 
      new DataGridTextBoxColumn(pcol["OrderAmount"], "c", true);
      csOrderAmount.MappingName = "OrderAmount";
      csOrderAmount.HeaderText = "Total";
      csOrderAmount.Width = 100;
      ts2.GridColumnStyles.Add(csOrderAmount);

      // Add the DataGridTableStyle objects to the collection.
      myDataGrid.TableStyles.Add(ts1);
      myDataGrid.TableStyles.Add(ts2);
   }
Private Sub AddCustomDataTableStyle()
    ' Create a new DataGridTableStyle and set
    ' its MappingName to the TableName of a DataTable. 
    Dim ts1 As New DataGridTableStyle()
    ts1.MappingName = "Customers"
    
    ' Add a GridColumnStyle and set its MappingName
    ' to the name of a DataColumn in the DataTable.
    ' Set the HeaderText and Width properties. 
    
    Dim boolCol As New DataGridBoolColumn()
    boolCol.MappingName = "Current"
    boolCol.HeaderText = "IsCurrent Customer"
    boolCol.Width = 150
    ts1.GridColumnStyles.Add(boolCol)
    
    ' Add a second column style.
    Dim TextCol As New DataGridTextBoxColumn()
    TextCol.MappingName = "custName"
    TextCol.HeaderText = "Customer Name"
    TextCol.Width = 250
    ts1.GridColumnStyles.Add(TextCol)

    ' Create the second table style with columns.
    Dim ts2 As New DataGridTableStyle()
    ts2.MappingName = "Orders"

    ' Change the colors.
    ts2.ForeColor = Color.Yellow
    ts2.AlternatingBackColor = Color.Blue
    ts2.BackColor = Color.Blue
    
    ' Create new DataGridColumnStyle objects.
    Dim cOrderDate As New DataGridTextBoxColumn()
    cOrderDate.MappingName = "OrderDate"
    cOrderDate.HeaderText = "Order Date"
    cOrderDate.Width = 100
    ts2.GridColumnStyles.Add(cOrderDate)
    
    Dim pcol As PropertyDescriptorCollection = Me.BindingContext(myDataSet, "Customers.custToOrders").GetItemProperties()
    
    Dim csOrderAmount As New DataGridTextBoxColumn(pcol("OrderAmount"), "c", True)
    csOrderAmount.MappingName = "OrderAmount"
    csOrderAmount.HeaderText = "Total"
    csOrderAmount.Width = 100
    ts2.GridColumnStyles.Add(csOrderAmount)

    ' Add the DataGridTableStyle objects to the collection.
    myDataGrid.TableStyles.Add(ts1)
    myDataGrid.TableStyles.Add(ts2)
End Sub

Комментарии

Элемент System.Windows.Forms.DataGrid управления отображает данные в виде сетки. DataGridTableStyle— это класс, представляющий только нарисованную сетку. Эту сетку не следует путать с классом DataTable , который является возможным источником данных для сетки. Вместо этого строго представляет сетку в том виде, DataGridTableStyle в который она закрашена в элементе управления . Таким образом, с помощью DataGridTableStyle можно управлять внешним видом сетки для каждого DataTable. Чтобы указать, какой DataGridTableStyle из них используется при отображении данных из определенного DataTableобъекта , присвойте MappingName свойству TableNameDataTableзначение .

Объект , GridTableStylesCollection полученный с помощью TableStyles свойства , содержит все объекты, DataGridTableStyle используемые элементом System.Windows.Forms.DataGrid управления . Коллекция может содержать любое необходимое количество DataGridTableStyle объектов, однако MappingName каждый из них должен быть уникальным. Во время выполнения это позволяет заменить разные DataGridTableStyle данные в зависимости от предпочтений пользователя. Для этого выполните следующие действия.

  1. Заполните объект объектами GridTableStylesCollectionDataGridTableStyle . Если в объекте существует объект , значение свойства которого MappingName равно свойству DataTableDataTable объектаTableName, отображается с этим DataGridTableStyle.DataGridTableStyleGridTableStylesCollection Если с DataGridTableStyle соответствующим MappingNameзначением не существует , DataTable отображается со стилем по умолчанию для таблиц сетки данных.

  2. Если требуется другой стиль сетки Item , используйте свойство , чтобы выбрать соответствующий DataGridTableStyle (передать TableNameItem[] в свойство ) и задать MappingName для возвращаемого объекта новое значение.

  3. Используйте свойство , Item[] чтобы выбрать нужный DataGridTableStyleобъект и присвоить TableName ей MappingName значение .DataTable

Внимание!

Всегда создавайте DataGridColumnStyle объекты и добавляйте их в перед GridColumnStylesCollection добавлением DataGridTableStyle объектов в GridTableStylesCollection. При добавлении пустого DataGridTableStyle объекта с допустимым MappingName значением в коллекцию DataGridColumnStyle автоматически создаются объекты. Следовательно, при попытке добавить новые DataGridColumnStyle объекты с повторяющимися MappingName значениями GridColumnStylesCollectionв будет создано исключение .

Чтобы определить, какой DataGridTableStyle объект отображается в данный момент, используйте DataSource свойства и DataMember объекта для System.Windows.Forms.DataGrid возврата CurrencyManager. Если источник данных реализует ITypedList интерфейс , можно использовать GetListName метод для возврата MappingName объекта текущей таблицы. Это показано в коде C# ниже:

private void PrintCurrentListName(DataGrid myDataGrid){  
 CurrencyManager myCM = (CurrencyManager)  
 BindingContext[myDataGrid.DataSource, myDataGrid.DataMember];  
 IList myList = myCM.List;  
 ITypedList thisList = (ITypedList) myList;  
 Console.WriteLine(thisList.GetListName(null));  
}  

DataSet Если объект содержит DataTable объекты, связанные с помощью DataRelation объектов , и отображаемая DataTable в данный момент таблица является дочерней таблицейDataMember, объект вернет строку в виде TableName.RelationName (в простейшем случае). DataTable Если объект находится ниже в иерархии, строка будет состоять из имени родительской таблицы, за которой следуют значения, необходимые RelationName для достижения уровня таблицы. Например, представьте себе три DataTable объекта в иерархической связи с именами (сверху вниз) Regions, Customersи , а Ordersтакже два DataRelation объекта с именами RegionsToCustomers и CustomersToOrders, DataMember свойство вернет "Regions.RegionsToCustomers.CustomersToOrders". Однако затем MappingName будет иметь значение "Orders".

Коллекция DataGridTableStyle объектов возвращается через TableStyles свойство объекта System.Windows.Forms.DataGrid.

DataGridTableStyle При отображении параметры для DataGridTableStyle будут переопределять параметры элемента System.Windows.Forms.DataGrid управления . Если значение не задано для определенного DataGridTableStyleSystem.Windows.Forms.DataGrid свойства, вместо него будет использоваться значение элемента управления . В следующем списке DataGridColumnStyle показаны свойства, которые можно задать для переопределения System.Windows.Forms.DataGrid свойств элемента управления.

Чтобы привязать DataGrid к строго типизированному массиву объектов, тип объекта должен содержать открытые свойства. Чтобы создать объект , отображающий DataGridTableStyle массив, присвойте свойству DataGridTableStyle.MappingNametypename значение , где typename заменяется именем типа объекта. Также обратите внимание, что в свойстве MappingName учитывается регистр; имя типа должно быть точно совпадать. Пример см. в MappingName свойстве .

Можно также привязать DataGrid к ArrayList. Особенность заключается в ArrayList том, что он может содержать объекты нескольких типов, но DataGrid может привязаться к такому списку только в том случае, если все элементы в списке имеют тот же тип, что и первый элемент. Это означает, что все объекты должны быть одного типа или наследоваться от того же класса, что и первый элемент в списке. Например, если первым элементом в списке является , вторым элементом Controlможет быть TextBox (который наследуется от Control). Если, с другой стороны, первым элементом TextBoxявляется , второй объект не может быть Control. Кроме того, ArrayList объект должен содержать элементы, если он привязан, а объекты в должны содержать открытые DataGridTableStyle свойства. ArrayList Пустое приведет к пустой сетке. При привязке ArrayListк свойству присвойте MappingName свойству DataGridTableStyle значение ArrayList (имя типа).

Конструкторы

DataGridTableStyle()

Инициализирует новый экземпляр класса DataGridTableStyle.

DataGridTableStyle(Boolean)

Инициализирует новый экземпляр класса DataGridTableStyle, используя заданное значение, чтобы определить, применен ли для таблицы стиль по умолчанию.

DataGridTableStyle(CurrencyManager)

Инициализирует новый экземпляр класса DataGridTableStyle указанным значением CurrencyManager.

Поля

DefaultTableStyle

Получает стиль таблицы по умолчанию.

Свойства

AllowSorting

Указывает, разрешена ли сортировка в таблице, когда используется DataGridTableStyle.

AlternatingBackColor

Получает или задает цвет фона строк сетки с нечетными номерами.

BackColor

Получает или задает цвет фона строк сетки с четными номерами.

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

(Унаследовано от Component)
ColumnHeadersVisible

Получает или задает значение, показывающее, являются ли заголовки столбцов видимыми.

Container

Возвращает объект IContainer, который содержит коллекцию Component.

(Унаследовано от Component)
DataGrid

Получает или задает элемент управления DataGrid для нарисованной таблицы.

DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

(Унаследовано от Component)
Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

(Унаследовано от Component)
ForeColor

Получает или задает основной цвет таблицы.

GridColumnStyles

Получает коллекцию столбцов, нарисованных для данной таблицы.

GridLineColor

Получает или задает цвет линий сетки.

GridLineStyle

Получает или задает стиль линий сетки.

HeaderBackColor

Получает или задает цвет фона заголовков.

HeaderFont

Получает или задает шрифт, используемый для названий заголовка.

HeaderForeColor

Получает или задает основной цвет заголовков.

LinkColor

Получает или задает цвет текста ссылки.

LinkHoverColor

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

MappingName

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

PreferredColumnWidth

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

PreferredRowHeight

Получает или задает высоту, используемую для создания строк при отображении новой сетки.

ReadOnly

Получает или задает значение, показывающее, разрешено ли редактирование столбцов.

RowHeadersVisible

Получает или задает значение, показывающее, видимы ли заголовки строк.

RowHeaderWidth

Получает или задает ширину заголовков строк.

SelectionBackColor

Получает или задает цвет фона выбранных ячеек.

SelectionForeColor

Получает или задает основной цвет выбранных ячеек.

Site

Получает или задает ISite объекта Component.

(Унаследовано от Component)

Методы

BeginEdit(DataGridColumnStyle, Int32)

Запрашивает операцию редактирования.

CreateGridColumn(PropertyDescriptor)

Создает DataGridColumnStyle с помощью заданного дескриптора свойства.

CreateGridColumn(PropertyDescriptor, Boolean)

Создает DataGridColumnStyle с помощью заданного дескриптора свойства. Определяет, является ли DataGridColumnStyle стилем столбца по умолчанию.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Уничтожает ресурсы (кроме памяти), используемые классом DataGridTableStyle.

EndEdit(DataGridColumnStyle, Int32, Boolean)

Запрашивает окончание операции редактирования.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

(Унаследовано от Component)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
OnAllowSortingChanged(EventArgs)

Вызывает событие AllowSortingChanged.

OnAlternatingBackColorChanged(EventArgs)

Вызывает событие AlternatingBackColorChanged.

OnBackColorChanged(EventArgs)

Вызывает событие BackColorChanged.

OnColumnHeadersVisibleChanged(EventArgs)

Вызывает событие ColumnHeadersVisibleChanged.

OnForeColorChanged(EventArgs)

Вызывает событие ForeColorChanged.

OnGridLineColorChanged(EventArgs)

Вызывает событие GridLineColorChanged.

OnGridLineStyleChanged(EventArgs)

Вызывает событие GridLineStyleChanged.

OnHeaderBackColorChanged(EventArgs)

Вызывает событие HeaderBackColorChanged.

OnHeaderFontChanged(EventArgs)

Вызывает событие HeaderFontChanged.

OnHeaderForeColorChanged(EventArgs)

Вызывает событие HeaderForeColorChanged.

OnLinkColorChanged(EventArgs)

Вызывает событие LinkColorChanged.

OnLinkHoverColorChanged(EventArgs)

Вызывает событие LinkHoverColorChanged.

OnMappingNameChanged(EventArgs)

Вызывает событие MappingNameChanged.

OnPreferredColumnWidthChanged(EventArgs)

Вызывает событие PreferredColumnWidthChanged.

OnPreferredRowHeightChanged(EventArgs)

Вызывает событие PreferredRowHeightChanged.

OnReadOnlyChanged(EventArgs)

Вызывает событие ReadOnlyChanged.

OnRowHeadersVisibleChanged(EventArgs)

Вызывает событие RowHeadersVisibleChanged.

OnRowHeaderWidthChanged(EventArgs)

Вызывает событие RowHeaderWidthChanged.

OnSelectionBackColorChanged(EventArgs)

Вызывает событие SelectionBackColorChanged.

OnSelectionForeColorChanged(EventArgs)

Вызывает событие SelectionForeColorChanged.

ResetAlternatingBackColor()

Восстанавливает значение по умолчанию свойства AlternatingBackColor.

ResetBackColor()

Восстанавливает значение по умолчанию свойства BackColor.

ResetForeColor()

Восстанавливает значение по умолчанию свойства ForeColor.

ResetGridLineColor()

Восстанавливает значение по умолчанию свойства GridLineColor.

ResetHeaderBackColor()

Восстанавливает значение по умолчанию свойства HeaderBackColor.

ResetHeaderFont()

Восстанавливает значение по умолчанию свойства HeaderFont.

ResetHeaderForeColor()

Восстанавливает значение по умолчанию свойства HeaderForeColor.

ResetLinkColor()

Восстанавливает значение по умолчанию свойства LinkColor.

ResetLinkHoverColor()

Восстанавливает значение по умолчанию свойства LinkHoverColor.

ResetSelectionBackColor()

Восстанавливает значение по умолчанию свойства SelectionBackColor.

ResetSelectionForeColor()

Восстанавливает значение по умолчанию свойства SelectionForeColor.

ShouldSerializeAlternatingBackColor()

Определяет необходимость сохранения значения свойства AlternatingBackColor.

ShouldSerializeBackColor()

Определяет необходимость сохранения значения свойства BackColor.

ShouldSerializeForeColor()

Определяет необходимость сохранения значения свойства ForeColor.

ShouldSerializeGridLineColor()

Определяет необходимость сохранения значения свойства GridLineColor.

ShouldSerializeHeaderBackColor()

Определяет необходимость сохранения значения свойства HeaderBackColor.

ShouldSerializeHeaderForeColor()

Определяет необходимость сохранения значения свойства HeaderForeColor.

ShouldSerializeLinkColor()

Определяет необходимость сохранения значения свойства LinkColor.

ShouldSerializeLinkHoverColor()

Определяет необходимость сохранения значения свойства LinkHoverColor.

ShouldSerializePreferredRowHeight()

Определяет необходимость сохранения значения свойства PreferredRowHeight.

ShouldSerializeSelectionBackColor()

Определяет необходимость сохранения значения свойства SelectionBackColor.

ShouldSerializeSelectionForeColor()

Определяет необходимость сохранения значения свойства SelectionForeColor.

ToString()

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

(Унаследовано от Component)

События

AllowSortingChanged

Происходит при изменении значения свойства AllowSorting.

AlternatingBackColorChanged

Происходит при изменении значения свойства AlternatingBackColor.

BackColorChanged

Происходит при изменении значения свойства BackColor.

ColumnHeadersVisibleChanged

Происходит при изменении значения свойства ColumnHeadersVisible.

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

(Унаследовано от Component)
ForeColorChanged

Происходит при изменении значения свойства ForeColor.

GridLineColorChanged

Происходит при изменении значения свойства GridLineColor.

GridLineStyleChanged

Происходит при изменении значения свойства GridLineStyle.

HeaderBackColorChanged

Происходит при изменении значения свойства HeaderBackColor.

HeaderFontChanged

Происходит при изменении значения свойства HeaderFont.

HeaderForeColorChanged

Происходит при изменении значения свойства HeaderForeColor.

LinkColorChanged

Происходит при изменении значения свойства LinkColor.

LinkHoverColorChanged

Происходит при изменении значения свойства LinkHoverColor.

MappingNameChanged

Происходит при изменении значения свойства MappingName.

PreferredColumnWidthChanged

Происходит при изменении значения свойства PreferredColumnWidth.

PreferredRowHeightChanged

Происходит при изменении значения свойства PreferredRowHeight.

ReadOnlyChanged

Происходит при изменении значения свойства ReadOnly.

RowHeadersVisibleChanged

Происходит при изменении значения свойства RowHeadersVisible.

RowHeaderWidthChanged

Происходит при изменении значения свойства RowHeaderWidth.

SelectionBackColorChanged

Происходит при изменении значения свойства SelectionBackColor.

SelectionForeColorChanged

Происходит при изменении значения свойства SelectionForeColor.

Применяется к

См. также раздел