Partilhar via


DataGridTableStyle Classe

Definição

Representa a tabela desenhada pelo controle DataGrid no 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 ao GridColumnStylesCollection de cada DataGridTableStyle. Para obter um exemplo que é 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. O 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, o DataGridTableStyle representa estritamente a grade à medida que é pintada no controle . Portanto, por meio do DataGridTableStyle , você pode controlar a aparência da grade para cada DataTable. Para especificar qual DataGridTableStyle é usado ao exibir dados de um determinado DataTable, defina o MappingName como o TableName de um DataTable.

O GridTableStylesCollection recuperado 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, o MappingName de cada 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 o GridTableStylesCollection com DataGridTableStyle objetos . Se existir um no cujo valor de propriedade é igual à DataTable propriedade do TableName objeto, o DataTable será exibido com este DataGridTableStyle.MappingNameGridTableStylesCollectionDataGridTableStyle Se não DataGridTableStyle existir com um correspondente MappingName, o DataTable será exibido 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 o TableName para a Item[] propriedade) e defina o MappingName do objeto retornado como um novo valor.

  3. Use a Item[] propriedade para selecionar o desejado DataGridTableStylee defina como MappingName o TableName do DataTable.

Cuidado

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 qual DataGridTableStyle é exibido no momento, use as DataSource propriedades e DataMember do System.Windows.Forms.DataGrid para retornar um CurrencyManager. Se a fonte de dados implementar a ITypedList interface , você poderá usar o GetListName método para retornar o MappingName da 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 o DataSet contiver DataTable objetos relacionados por meio DataRelation de objetos e o exibido DataTable atualmente for uma tabela filho, o DataMember retornará uma cadeia de caracteres na forma de TableName.RelationName (no caso mais simples). Se o DataTable estiver mais abaixo na hierarquia, a cadeia de caracteres consistirá no nome da tabela pai seguido pelos valores necessários RelationName necessários para alcançar o nível da tabela. Por exemplo, imagine três DataTable objetos em uma relação hierárquica chamada (de cima para baixo) Regions, Customerse Orders, e dois DataRelation objetos chamados RegionsToCustomers e CustomersToOrders, 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 do 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. A lista a seguir mostra as DataGridColumnStyle propriedades que podem ser definidas para substituir System.Windows.Forms.DataGrid as propriedades de controle:

Para associar o DataGrid a 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 como 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 correspondido exatamente. Consulte a MappingName propriedade para obter um exemplo.

Você também pode associar o DataGrid a um ArrayList. Um recurso do ArrayList é que ele pode conter objetos de vários tipos, mas o DataGrid só pode se associar a essa lista quando todos os itens na lista são 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, o ArrayList deve ter itens quando está associado e os objetos no DataGridTableStyle devem conter propriedades públicas. Um vazio ArrayList resultará em uma grade vazia. Ao associar a um ArrayList, defina o DataGridTableStyleMappingName de como "ArrayList" (o nome do tipo).

Construtores

DataGridTableStyle()

Inicializa uma nova instância da classe DataGridTableStyle.

DataGridTableStyle(Boolean)

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

DataGridTableStyle(CurrencyManager)

Inicializa uma nova instância da classe DataGridTableStyle com o CurrencyManager especificado.

Campos

DefaultTableStyle

Obtém o estilo de tabela padrão.

Propriedades

AllowSorting

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

AlternatingBackColor

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

BackColor

Obtém ou define a cor da tela de fundo das linhas pares da grade.

CanRaiseEvents

Obtém um valor que indica se o componente pode acionar 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 controle DataGrid para a 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 que estão anexados a este Component.

(Herdado de Component)
ForeColor

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

GridColumnStyles

Obtém a coleção de colunas desenhada para essa 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 a legenda do 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 focalizar o texto do link.

MappingName

Obtém ou define o nome usado para mapear esta 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 de primeiro plano das células selecionadas.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

BeginEdit(DataGridColumnStyle, Int32)

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

CreateGridColumn(PropertyDescriptor)

Cria um DataGridColumnStyle usando o descritor da propriedade especificado.

CreateGridColumn(PropertyDescriptor, Boolean)

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

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 (exceto a memória) usados pelo DataGridTableStyle.

EndEdit(DataGridColumnStyle, Int32, Boolean)

Solicita um fim para 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 de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

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

(Herdado de MarshalByRefObject)
GetService(Type)

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

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

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

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(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 AlternatingBackColor para seu valor padrão.

ResetBackColor()

Redefine a propriedade BackColor para seu valor padrão.

ResetForeColor()

Redefine a propriedade ForeColor para seu valor padrão.

ResetGridLineColor()

Redefine a propriedade GridLineColor para seu valor padrão.

ResetHeaderBackColor()

Redefine a propriedade HeaderBackColor para seu valor padrão.

ResetHeaderFont()

Redefine a propriedade HeaderFont para seu valor padrão.

ResetHeaderForeColor()

Redefine a propriedade HeaderForeColor para seu valor padrão.

ResetLinkColor()

Redefine a propriedade LinkColor para seu valor padrão.

ResetLinkHoverColor()

Redefine a propriedade LinkHoverColor para seu valor padrão.

ResetSelectionBackColor()

Redefine a propriedade SelectionBackColor para seu valor padrão.

ResetSelectionForeColor()

Redefine a propriedade SelectionForeColor para seu valor padrão.

ShouldSerializeAlternatingBackColor()

Indica se a propriedade AlternatingBackColor deve ser persistente.

ShouldSerializeBackColor()

Indica se a propriedade BackColor deve ser persistente.

ShouldSerializeForeColor()

Indica se a propriedade ForeColor deve ser persistente.

ShouldSerializeGridLineColor()

Indica se a propriedade GridLineColor deve ser persistente.

ShouldSerializeHeaderBackColor()

Indica se a propriedade HeaderBackColor deve ser persistente.

ShouldSerializeHeaderForeColor()

Indica se a propriedade HeaderForeColor deve ser persistente.

ShouldSerializeLinkColor()

Indica se a propriedade LinkColor deve ser persistente.

ShouldSerializeLinkHoverColor()

Indica se a propriedade LinkHoverColor deve ser persistente.

ShouldSerializePreferredRowHeight()

Indica se a propriedade PreferredRowHeight deve ser persistente.

ShouldSerializeSelectionBackColor()

Indica se a propriedade SelectionBackColor deve ser persistente.

ShouldSerializeSelectionForeColor()

Indica se a propriedade SelectionForeColor deve ser persistente.

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

AllowSortingChanged

Ocorre quando o valor da propriedade AllowSorting muda.

AlternatingBackColorChanged

Ocorre quando o valor AlternatingBackColor é alterado.

BackColorChanged

Ocorre quando o valor BackColor é alterado.

ColumnHeadersVisibleChanged

Ocorre quando o valor ColumnHeadersVisible é alterado.

Disposed

Ocorre quando o componente é disposto por uma chamada ao método Dispose().

(Herdado de Component)
ForeColorChanged

Ocorre quando o valor ForeColor é alterado.

GridLineColorChanged

Ocorre quando o valor GridLineColor é alterado.

GridLineStyleChanged

Ocorre quando o valor GridLineStyle é alterado.

HeaderBackColorChanged

Ocorre quando o valor HeaderBackColor é alterado.

HeaderFontChanged

Ocorre quando o valor HeaderFont é alterado.

HeaderForeColorChanged

Ocorre quando o valor HeaderForeColor é alterado.

LinkColorChanged

Ocorre quando o valor LinkColor é alterado.

LinkHoverColorChanged

Ocorre quando o valor LinkHoverColor é alterado.

MappingNameChanged

Ocorre quando o valor MappingName é alterado.

PreferredColumnWidthChanged

Ocorre quando o valor da propriedade PreferredColumnWidth muda.

PreferredRowHeightChanged

Ocorre quando o valor PreferredRowHeight é alterado.

ReadOnlyChanged

Ocorre quando o valor ReadOnly é alterado.

RowHeadersVisibleChanged

Ocorre quando o valor RowHeadersVisible é alterado.

RowHeaderWidthChanged

Ocorre quando o valor RowHeaderWidth é alterado.

SelectionBackColorChanged

Ocorre quando o valor SelectionBackColor é alterado.

SelectionForeColorChanged

Ocorre quando o valor SelectionForeColor é alterado.

Aplica-se a

Confira também