DataGridTableStyle Classe

Definição

Representa a tabela desenhada pelo DataGrid controle em tempo de execução.

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
Herança
DataGridTableStyle
Implementações

Exemplos

O exemplo de código a seguir cria duas DataGridTableStyle instâncias e define o MappingName de cada objeto como o TableName de um DataTable em um DataSet. Em seguida, o exemplo adiciona DataGridColumnStyle objetos a GridColumnStylesCollection cada DataGridTableStyle. Para obter um exemplo executado, consulte o System.Windows.Forms.DataGrid exemplo.

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

Comentários

O System.Windows.Forms.DataGrid controle exibe dados na forma de uma grade. É DataGridTableStyle uma classe que representa apenas a grade desenhada. Essa grade não deve ser confundida com a DataTable classe, que é uma possível fonte de dados para a grade. Em vez disso, a DataGridTableStyle grade representa estritamente como ela é pintada no controle. Portanto, por meio do DataGridTableStyle você pode controlar a aparência da grade para cada DataTable. Para especificar o que DataGridTableStyle é usado ao exibir dados de um determinado DataTable, defina como MappingName um TableNameDataTable.

A GridTableStylesCollection recuperação por meio da TableStyles propriedade contém todos os DataGridTableStyle objetos usados por um System.Windows.Forms.DataGrid controle. A coleção pode conter quantos DataGridTableStyle objetos forem necessários, no entanto, cada MappingName um deve ser exclusivo. Em tempo de execução, isso permite substituir um diferente DataGridTableStyle pelos mesmos dados, dependendo da preferência do usuário. Para fazer isso:

  1. Preencha os GridTableStylesCollection objetos com DataGridTableStyle . Se existir um DataGridTableStyle valor de propriedade cujo GridTableStylesCollection valor de propriedade é igual à MappingName propriedade do DataTable objeto, ele TableName será exibido com issoDataTableDataGridTableStyle. Se não DataGridTableStyle existir com uma correspondência MappingName, ela DataTable será exibida com o estilo padrão para tabelas de grade de dados.

  2. Quando um estilo de grade diferente for necessário, use a Item propriedade para selecionar o apropriado DataGridTableStyle (passe a TableName propriedade para a Item[] propriedade) e defina o MappingName objeto retornado como um novo valor.

  3. Use a Item[] propriedade para selecionar a desejada DataGridTableStylee defina-a MappingName como a TableNameDataTabledo .

Caution

Sempre crie DataGridColumnStyle objetos e adicione-os GridColumnStylesCollection ao antes de adicionar DataGridTableStyle objetos ao GridTableStylesCollection. Quando você adiciona um vazio DataGridTableStyle com um valor válido MappingName à coleção, DataGridColumnStyle os objetos são gerados automaticamente para você. Consequentemente, uma exceção será gerada se você tentar adicionar novos DataGridColumnStyle objetos com valores duplicados MappingName ao GridColumnStylesCollection.

Para determinar quais DataGridTableStyle são exibidos no momento, use as propriedades e DataSource as DataMemberSystem.Windows.Forms.DataGrid propriedades do para retornar um CurrencyManager. Se a fonte de dados implementar a ITypedList interface, você poderá usar o GetListName método para retornar a MappingName tabela atual. Isso é mostrado no código C# abaixo:

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));
}

Se os DataSet objetos contiverem DataTable objetos relacionados por meio DataRelation de objetos e o exibido atualmente DataTable for uma tabela filho, retornará DataMember uma cadeia de caracteres na forma de TableName.RelationName (no caso mais simples). Se estiver DataTable mais abaixo na hierarquia, a cadeia de caracteres consistirá no nome da tabela pai seguida pelos valores necessários RelationName para atingir o nível da tabela. Por exemplo, imagine três DataTable objetos em uma relação hierárquica chamada (de cima para baixo) RegionsCustomerse , e Ordersdois DataRelation objetos nomeados RegionsToCustomers eCustomersToOrders, a DataMember propriedade retornará "Regions.RegionsToCustomers.CustomersToOrders". No entanto, o MappingName será então "Pedidos".

A coleção de DataGridTableStyle objetos é retornada por meio da TableStyles propriedade do System.Windows.Forms.DataGrid.

Quando um DataGridTableStyle é exibido, as configurações para o DataGridTableStyle substituirão as configurações do System.Windows.Forms.DataGrid controle. Se um valor não for definido para uma propriedade específica DataGridTableStyle , o System.Windows.Forms.DataGrid valor do controle será usado em vez disso. A lista a seguir mostra as DataGridColumnStyle propriedades que podem ser definidas para substituir System.Windows.Forms.DataGrid as propriedades de controle:

Para associar a DataGrid uma matriz fortemente tipada de objetos, o tipo de objeto deve conter propriedades públicas. Para criar um DataGridTableStyle que exibe a matriz, defina a DataGridTableStyle.MappingName propriedade para typename onde typename é substituída pelo nome do tipo de objeto. Observe também que a MappingName propriedade diferencia maiúsculas de minúsculas; o nome do tipo deve ser exatamente correspondente. Consulte a MappingName propriedade para obter um exemplo.

Você também pode associar a DataGrid um ArrayList. Um recurso é ArrayList que ele pode conter objetos de vários tipos, mas só DataGrid pode se associar a essa lista quando todos os itens na lista forem do mesmo tipo que o primeiro item. Isso significa que todos os objetos devem ser do mesmo tipo ou devem herdar da mesma classe que o primeiro item da lista. Por exemplo, se o primeiro item em uma lista for um Control, o segundo item poderá ser um TextBox (que herda de Control). Se, por outro lado, o primeiro item for um TextBox, o segundo objeto não poderá ser um Control. Além disso, é ArrayList necessário ter itens quando ele está associado e os objetos no DataGridTableStyle deve conter propriedades públicas. Um vazio ArrayList resultará em uma grade vazia. Ao associar a um ArrayList, defina o MappingNameDataGridTableStyle de "ArrayList" (o nome do tipo).

Construtores

Nome Description
DataGridTableStyle()

Inicializa uma nova instância da classe DataGridTableStyle.

DataGridTableStyle(Boolean)

Inicializa uma nova instância da DataGridTableStyle classe usando o valor especificado para determinar se a tabela de grade é o estilo padrão.

DataGridTableStyle(CurrencyManager)

Inicializa uma nova instância da DataGridTableStyle classe com a especificada CurrencyManager.

Campos

Nome Description
DefaultTableStyle

Obtém o estilo de tabela padrão.

Propriedades

Nome Description
AllowSorting

Indica se a classificação é permitida na tabela de grade quando isso DataGridTableStyle é usado.

AlternatingBackColor

Obtém ou define a cor da tela de fundo de linhas numeradas ímpares da grade.

BackColor

Obtém ou define a cor da tela de fundo de linhas com numeração uniforme da grade.

CanRaiseEvents

Obtém um valor que indica se o componente pode gerar um evento.

(Herdado de Component)
ColumnHeadersVisible

Obtém ou define um valor que indica se os cabeçalhos de coluna estão visíveis.

Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
DataGrid

Obtém ou define o DataGrid controle da tabela desenhada.

DesignMode

Obtém um valor que indica se o Component está no modo de design no momento.

(Herdado de Component)
Events

Obtém a lista de manipuladores de eventos anexados a isso Component.

(Herdado de Component)
ForeColor

Obtém ou define a cor do primeiro plano da tabela de grade.

GridColumnStyles

Obtém a coleção de colunas desenhadas para esta tabela.

GridLineColor

Obtém ou define a cor das linhas de grade.

GridLineStyle

Obtém ou define o estilo das linhas de grade.

HeaderBackColor

Obtém ou define a cor da tela de fundo dos cabeçalhos.

HeaderFont

Obtém ou define a fonte usada para legendas de cabeçalho.

HeaderForeColor

Obtém ou define a cor de primeiro plano dos cabeçalhos.

LinkColor

Obtém ou define a cor do texto do link.

LinkHoverColor

Obtém ou define a cor exibida ao passar o mouse sobre o texto do link.

MappingName

Obtém ou define o nome usado para mapear essa tabela para uma fonte de dados específica.

PreferredColumnWidth

Obtém ou define a largura usada para criar colunas quando uma nova grade é exibida.

PreferredRowHeight

Obtém ou define a altura usada para criar uma linha quando uma nova grade é exibida.

ReadOnly

Obtém ou define um valor que indica se as colunas podem ser editadas.

RowHeadersVisible

Obtém ou define um valor que indica se os cabeçalhos de linha estão visíveis.

RowHeaderWidth

Obtém ou define a largura dos cabeçalhos de linha.

SelectionBackColor

Obtém ou define a cor da tela de fundo das células selecionadas.

SelectionForeColor

Obtém ou define a cor do primeiro plano das células selecionadas.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

Nome Description
BeginEdit(DataGridColumnStyle, Int32)

Solicita uma operação de edição.

CreateGridColumn(PropertyDescriptor, Boolean)

Cria um DataGridColumnStyle usando o descritor de propriedade especificado. Especifica se o DataGridColumnStyle estilo de coluna é padrão.

CreateGridColumn(PropertyDescriptor)

Cria um DataGridColumnStyle, usando o descritor de propriedade especificado.

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Libera todos os recursos usados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Descarta os recursos (além da memória) usados DataGridTableStylepelo .

EndEdit(DataGridColumnStyle, Int32, Boolean)

Solicita o fim de uma operação de edição.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou por sua Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
OnAllowSortingChanged(EventArgs)

Aciona o evento AllowSortingChanged.

OnAlternatingBackColorChanged(EventArgs)

Aciona o evento AlternatingBackColorChanged.

OnBackColorChanged(EventArgs)

Aciona o evento BackColorChanged.

OnColumnHeadersVisibleChanged(EventArgs)

Aciona o evento ColumnHeadersVisibleChanged.

OnForeColorChanged(EventArgs)

Aciona o evento ForeColorChanged.

OnGridLineColorChanged(EventArgs)

Aciona o evento GridLineColorChanged.

OnGridLineStyleChanged(EventArgs)

Aciona o evento GridLineStyleChanged.

OnHeaderBackColorChanged(EventArgs)

Aciona o evento HeaderBackColorChanged.

OnHeaderFontChanged(EventArgs)

Aciona o evento HeaderFontChanged.

OnHeaderForeColorChanged(EventArgs)

Aciona o evento HeaderForeColorChanged.

OnLinkColorChanged(EventArgs)

Aciona o evento LinkColorChanged.

OnLinkHoverColorChanged(EventArgs)

Aciona o evento LinkHoverColorChanged.

OnMappingNameChanged(EventArgs)

Aciona o evento MappingNameChanged.

OnPreferredColumnWidthChanged(EventArgs)

Aciona o evento PreferredColumnWidthChanged.

OnPreferredRowHeightChanged(EventArgs)

Aciona o evento PreferredRowHeightChanged.

OnReadOnlyChanged(EventArgs)

Aciona o evento ReadOnlyChanged.

OnRowHeadersVisibleChanged(EventArgs)

Aciona o evento RowHeadersVisibleChanged.

OnRowHeaderWidthChanged(EventArgs)

Aciona o evento RowHeaderWidthChanged.

OnSelectionBackColorChanged(EventArgs)

Aciona o evento SelectionBackColorChanged.

OnSelectionForeColorChanged(EventArgs)

Aciona o evento SelectionForeColorChanged.

ResetAlternatingBackColor()

Redefine a propriedade para seu AlternatingBackColor valor padrão.

ResetBackColor()

Redefine a propriedade para seu BackColor valor padrão.

ResetForeColor()

Redefine a propriedade para seu ForeColor valor padrão.

ResetGridLineColor()

Redefine a propriedade para seu GridLineColor valor padrão.

ResetHeaderBackColor()

Redefine a propriedade para seu HeaderBackColor valor padrão.

ResetHeaderFont()

Redefine a propriedade para seu HeaderFont valor padrão.

ResetHeaderForeColor()

Redefine a propriedade para seu HeaderForeColor valor padrão.

ResetLinkColor()

Redefine a propriedade para seu LinkColor valor padrão.

ResetLinkHoverColor()

Redefine a propriedade para seu LinkHoverColor valor padrão.

ResetSelectionBackColor()

Redefine a propriedade para seu SelectionBackColor valor padrão.

ResetSelectionForeColor()

Redefine a propriedade para seu SelectionForeColor valor padrão.

ShouldSerializeAlternatingBackColor()

Indica se a AlternatingBackColor propriedade deve ser mantida.

ShouldSerializeBackColor()

Indica se a BackColor propriedade deve ser mantida.

ShouldSerializeForeColor()

Indica se a ForeColor propriedade deve ser mantida.

ShouldSerializeGridLineColor()

Indica se a GridLineColor propriedade deve ser mantida.

ShouldSerializeHeaderBackColor()

Indica se a HeaderBackColor propriedade deve ser mantida.

ShouldSerializeHeaderForeColor()

Indica se a HeaderForeColor propriedade deve ser mantida.

ShouldSerializeLinkColor()

Indica se a LinkColor propriedade deve ser mantida.

ShouldSerializeLinkHoverColor()

Indica se a LinkHoverColor propriedade deve ser mantida.

ShouldSerializePreferredRowHeight()

Indica se a PreferredRowHeight propriedade deve ser mantida.

ShouldSerializeSelectionBackColor()

Indica se a SelectionBackColor propriedade deve ser mantida.

ShouldSerializeSelectionForeColor()

Indica se a SelectionForeColor propriedade deve ser mantida.

ToString()

Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído.

(Herdado de Component)

Eventos

Nome Description
AllowSortingChanged

Ocorre quando o valor da AllowSorting propriedade é alterado.

AlternatingBackColorChanged

Ocorre quando o AlternatingBackColor valor é alterado.

BackColorChanged

Ocorre quando o BackColor valor é alterado.

ColumnHeadersVisibleChanged

Ocorre quando o ColumnHeadersVisible valor é alterado.

Disposed

Ocorre quando o componente é descartado por uma chamada para o Dispose() método.

(Herdado de Component)
ForeColorChanged

Ocorre quando o ForeColor valor é alterado.

GridLineColorChanged

Ocorre quando o GridLineColor valor é alterado.

GridLineStyleChanged

Ocorre quando o GridLineStyle valor é alterado.

HeaderBackColorChanged

Ocorre quando o HeaderBackColor valor é alterado.

HeaderFontChanged

Ocorre quando o HeaderFont valor é alterado.

HeaderForeColorChanged

Ocorre quando o HeaderForeColor valor é alterado.

LinkColorChanged

Ocorre quando o LinkColor valor é alterado.

LinkHoverColorChanged

Ocorre quando o LinkHoverColor valor é alterado.

MappingNameChanged

Ocorre quando o MappingName valor é alterado.

PreferredColumnWidthChanged

Ocorre quando o valor da PreferredColumnWidth propriedade é alterado.

PreferredRowHeightChanged

Ocorre quando o PreferredRowHeight valor é alterado.

ReadOnlyChanged

Ocorre quando o ReadOnly valor é alterado.

RowHeadersVisibleChanged

Ocorre quando o RowHeadersVisible valor é alterado.

RowHeaderWidthChanged

Ocorre quando o RowHeaderWidth valor é alterado.

SelectionBackColorChanged

Ocorre quando o SelectionBackColor valor é alterado.

SelectionForeColorChanged

Ocorre quando o SelectionForeColor valor é alterado.

Aplica-se a

Confira também