DataGridTableStyle Classe

Definição

Representa a tabela desenhada pelo DataGrid controlo 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 seguinte exemplo de código cria duas DataGridTableStyle instâncias e define o MappingName de cada objeto para o TableName de a DataTable num DataSet. O exemplo então adiciona DataGridColumnStyle objetos ao GridColumnStylesCollection de cada DataGridTableStyle. Para um exemplo que executa, veja o exemplo 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

Observações

O controlo System.Windows.Forms.DataGrid apresenta os dados sob a forma de uma grelha. A DataGridTableStyle é uma classe que representa apenas a grelha desenhada. Esta grelha não deve ser confundida com a DataTable classe, que é uma possível fonte de dados para a grelha. Em vez disso, o DataGridTableStyle representa estritamente a grelha tal como está pintada no controlo. Portanto, através de , DataGridTableStyle pode controlar a aparência da grelha para cada DataTable. Para especificar qual DataGridTableStyle é usado ao exibir dados de um determinado DataTable, defina o MappingName para o TableName de um DataTable.

O GridTableStylesCollection recuperado através da propriedade TableStyles contém todos os objetos DataGridTableStyle usados por um controlo System.Windows.Forms.DataGrid. A coleção pode conter tantos DataGridTableStyle objetos quanto precisares, no entanto, cada MappingName um deve ser único. Em tempo de execução, isto permite substituir um diferente DataGridTableStyle pelos mesmos dados, dependendo da preferência do utilizador. Para efetuar este procedimento:

  1. Preenche-os GridTableStylesCollection com DataGridTableStyle objetos. Se existe um DataGridTableStyle em cujo GridTableStylesCollectionMappingName valor de propriedade é igual à DataTable propriedade TableName do objeto, o DataTable é apresentado com este DataGridTableStyle. Se não DataGridTableStyle existir com uma correspondência MappingName, o DataTable é exibido com o estilo padrão para tabelas de grelha de dados.

  2. Quando for necessário um estilo de grelha diferente, use a Item propriedade para selecionar o apropriado DataGridTableStyle (passar o TableName para a Item[] propriedade) e definir o MappingName do objeto devolvido com um novo valor.

  3. Use a Item[] propriedade para selecionar o desejado DataGridTableStyle, e defina como MappingName o TableName de .DataTable

Caution

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

Para determinar qual DataGridTableStyle está atualmente apresentado, use as propriedades DataSource e DataMember do System.Windows.Forms.DataGrid para devolver um CurrencyManager. Se a fonte de dados implementar a ITypedList interface, pode usar o GetListName método para devolver o MappingName da tabela atual. Isto é 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 contém DataTable objetos relacionados através dos DataRelation objetos, e o atualmente apresentado DataTable for uma tabela filha, o DataMember retornará uma cadeia na forma NomeTabela.NomeRelação (no caso mais simples). Se o DataTable estiver mais abaixo na hierarquia, a cadeia consistirá no nome da tabela pai seguido dos valores necessários RelationName para atingir o nível da tabela. Por exemplo, imagine três DataTable objetos numa relação hierárquica nomeada (de cima para baixo) Regions, Customers, e Orders, e dois DataRelation objetos nomeados RegionsToCustomers e CustomersToOrders, a DataMember propriedade devolverá "Regions.RegionsToCustomers.CustomersToOrders". No entanto, MappingName serão então "Ordens".

A coleção de objetos DataGridTableStyle é devolvida através da propriedade TableStyles do System.Windows.Forms.DataGrid.

Quando um DataGridTableStyle é exibido, as definições do DataGridTableStyle sobrepõem-se às definições do controlo System.Windows.Forms.DataGrid. Se não for definido um valor para uma determinada propriedade DataGridTableStyle, será usado o valor do controlo System.Windows.Forms.DataGrid em vez disso. A lista seguinte mostra as propriedades DataGridColumnStyle que podem ser definidas para sobrepor propriedades de controlo System.Windows.Forms.DataGrid:

Para associar o DataGrid a um array fortemente tipado de objetos, o tipo de objeto deve conter propriedades públicas. Para criar um DataGridTableStyle que mostre o array, defina a DataGridTableStyle.MappingName propriedade para typename onde typename é substituída pelo nome do tipo de objeto. Note também que a MappingName propriedade é distinta a maiúsculas e minúsculas; o nome do tipo deve ser correspondido exatamente. Veja a MappingName propriedade para um exemplo.

Também pode associar o DataGrid a um ArrayList. Uma característica do ArrayList é que pode conter objetos de vários tipos, mas DataGrid só pode ser ligado a tal lista quando todos os itens da lista forem do mesmo tipo que o primeiro. Isto 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 numa lista for um Control, o segundo item pode ser um TextBox (que herda de Control). Se, por outro lado, o primeiro item for um TextBox, o segundo objeto não pode ser um Control. Além disso, os ArrayList devem ter itens quando estão vinculados e os objetos devem DataGridTableStyle conter propriedades públicas. Um vazio ArrayList resultará numa grelha vazia. Ao ligar a um ArrayList, defina o MappingName de para DataGridTableStyle "ArrayList" (o nome do tipo).

Construtores

Name Description
DataGridTableStyle()

Inicializa uma nova instância da DataGridTableStyle classe.

DataGridTableStyle(Boolean)

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

DataGridTableStyle(CurrencyManager)

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

Campos

Name Description
DefaultTableStyle

Obtém o estilo padrão da mesa.

Propriedades

Name Description
AllowSorting

Indica se a ordenação é permitida na tabela da grelha quando esta DataGridTableStyle é utilizada.

AlternatingBackColor

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

BackColor

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

CanRaiseEvents

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

(Herdado de Component)
ColumnHeadersVisible

Recebe ou define um valor que indica se os cabeçalhos das colunas são visíveis.

Container

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

(Herdado de Component)
DataGrid

Obtém ou define o DataGrid controlo para a mesa desenhada.

DesignMode

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

(Herdado de Component)
Events

Obtém a lista de gestores de eventos que estão ligados a isto Component.

(Herdado de Component)
ForeColor

Obtém ou define a cor em primeiro plano da tabela da grelha.

GridColumnStyles

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

GridLineColor

Obtém ou define a cor das linhas da grelha.

GridLineStyle

Obtém ou define o estilo das linhas da grelha.

HeaderBackColor

Recebe ou define a cor de fundo dos cabeçalhos.

HeaderFont

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

HeaderForeColor

Recebe ou define a cor em primeiro plano dos cabeçalhos.

LinkColor

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

LinkHoverColor

Obtém ou define a cor apresentada ao passar o rato sobre 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 grelha é apresentada.

PreferredRowHeight

Obtém ou define a altura usada para criar uma linha quando uma nova grelha é apresentada.

ReadOnly

Recebe ou define um valor que indica se as colunas podem ser editadas.

RowHeadersVisible

Recebe ou define um valor que indica se os cabeçalhos das linhas são visíveis.

RowHeaderWidth

Obtém ou define a largura dos cabeçalhos das linhas.

SelectionBackColor

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

SelectionForeColor

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

Site

Obtém ou define o ISite do Component.

(Herdado de Component)

Métodos

Name Description
BeginEdit(DataGridColumnStyle, Int32)

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

CreateGridColumn(PropertyDescriptor, Boolean)

Cria um DataGridColumnStyle usando o descritor de propriedades especificado. Especifica se o DataGridColumnStyle é um estilo de coluna por defeito.

CreateGridColumn(PropertyDescriptor)

Cria um DataGridColumnStyle, usando o descritor de propriedades especificado.

CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Liberta todos os recursos utilizados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Elimina os recursos (exceto memória) usados pelo DataGridTableStyle.

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 função de hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetService(Type)

Devolve 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()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
OnAllowSortingChanged(EventArgs)

Eleva o AllowSortingChanged evento.

OnAlternatingBackColorChanged(EventArgs)

Eleva o AlternatingBackColorChanged evento.

OnBackColorChanged(EventArgs)

Eleva o BackColorChanged evento.

OnColumnHeadersVisibleChanged(EventArgs)

Eleva o ColumnHeadersVisibleChanged evento.

OnForeColorChanged(EventArgs)

Eleva o ForeColorChanged evento.

OnGridLineColorChanged(EventArgs)

Eleva o GridLineColorChanged evento.

OnGridLineStyleChanged(EventArgs)

Eleva o GridLineStyleChanged evento.

OnHeaderBackColorChanged(EventArgs)

Eleva o HeaderBackColorChanged evento.

OnHeaderFontChanged(EventArgs)

Eleva o HeaderFontChanged evento.

OnHeaderForeColorChanged(EventArgs)

Eleva o HeaderForeColorChanged evento.

OnLinkColorChanged(EventArgs)

Eleva o LinkColorChanged evento.

OnLinkHoverColorChanged(EventArgs)

Eleva o LinkHoverColorChanged evento.

OnMappingNameChanged(EventArgs)

Eleva o MappingNameChanged evento.

OnPreferredColumnWidthChanged(EventArgs)

Eleva o PreferredColumnWidthChanged evento.

OnPreferredRowHeightChanged(EventArgs)

Eleva o PreferredRowHeightChanged evento.

OnReadOnlyChanged(EventArgs)

Eleva o ReadOnlyChanged evento.

OnRowHeadersVisibleChanged(EventArgs)

Eleva o RowHeadersVisibleChanged evento.

OnRowHeaderWidthChanged(EventArgs)

Eleva o RowHeaderWidthChanged evento.

OnSelectionBackColorChanged(EventArgs)

Eleva o SelectionBackColorChanged evento.

OnSelectionForeColorChanged(EventArgs)

Eleva o SelectionForeColorChanged evento.

ResetAlternatingBackColor()

Reinicia a AlternatingBackColor propriedade para o seu valor padrão.

ResetBackColor()

Reinicia a BackColor propriedade para o seu valor padrão.

ResetForeColor()

Reinicia a ForeColor propriedade para o seu valor padrão.

ResetGridLineColor()

Reinicia a GridLineColor propriedade para o seu valor padrão.

ResetHeaderBackColor()

Reinicia a HeaderBackColor propriedade para o seu valor padrão.

ResetHeaderFont()

Reinicia a HeaderFont propriedade para o seu valor padrão.

ResetHeaderForeColor()

Reinicia a HeaderForeColor propriedade para o seu valor padrão.

ResetLinkColor()

Reinicia a LinkColor propriedade para o seu valor padrão.

ResetLinkHoverColor()

Reinicia a LinkHoverColor propriedade para o seu valor padrão.

ResetSelectionBackColor()

Reinicia a SelectionBackColor propriedade para o seu valor padrão.

ResetSelectionForeColor()

Reinicia a SelectionForeColor propriedade para o seu 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()

Devolve a String contendo o nome do Component, se existir. Este método não deve ser ultrapassado.

(Herdado de Component)

evento

Name Description
AllowSortingChanged

Ocorre quando o valor da AllowSorting propriedade muda.

AlternatingBackColorChanged

Ocorre quando o AlternatingBackColor valor muda.

BackColorChanged

Ocorre quando o BackColor valor muda.

ColumnHeadersVisibleChanged

Ocorre quando o ColumnHeadersVisible valor muda.

Disposed

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

(Herdado de Component)
ForeColorChanged

Ocorre quando o ForeColor valor muda.

GridLineColorChanged

Ocorre quando o GridLineColor valor muda.

GridLineStyleChanged

Ocorre quando o GridLineStyle valor muda.

HeaderBackColorChanged

Ocorre quando o HeaderBackColor valor muda.

HeaderFontChanged

Ocorre quando o HeaderFont valor muda.

HeaderForeColorChanged

Ocorre quando o HeaderForeColor valor muda.

LinkColorChanged

Ocorre quando o LinkColor valor muda.

LinkHoverColorChanged

Ocorre quando o LinkHoverColor valor muda.

MappingNameChanged

Ocorre quando o MappingName valor muda.

PreferredColumnWidthChanged

Ocorre quando o valor da PreferredColumnWidth propriedade muda.

PreferredRowHeightChanged

Ocorre quando o PreferredRowHeight valor muda.

ReadOnlyChanged

Ocorre quando o ReadOnly valor muda.

RowHeadersVisibleChanged

Ocorre quando o RowHeadersVisible valor muda.

RowHeaderWidthChanged

Ocorre quando o RowHeaderWidth valor muda.

SelectionBackColorChanged

Ocorre quando o SelectionBackColor valor muda.

SelectionForeColorChanged

Ocorre quando o SelectionForeColor valor muda.

Aplica-se a

Ver também