Representa a tabela desenhada pelo System.Windows.Forms.DataGrid controle em time de execução.
Assembly: System.Windows.Forms (em System.Windows.Forms.dll)
Public Class DataGridTableStyle _ Inherits Component _ Implements IDataGridEditingService
Dim instance As DataGridTableStyle
public class DataGridTableStyle : Component, IDataGridEditingService
public ref class DataGridTableStyle : public Component, IDataGridEditingService
public class DataGridTableStyle extends Component implements IDataGridEditingService
The System.Windows.Forms.DataGrid controle exibe dados na forma de uma grade. The DataGridTableStyle é uma classe que representa a grade desenhada apenas. Essa grade não deve ser confundida com o DataTable classe, que é uma possível fonte de dados para a grade. Em vez disso, a DataGridTableStyle representa a grade estritamente sistema autônomo é pintado no controle. Portanto, por meio de DataGridTableStyle Você pode controlar a aparência da grade para cada DataTable. Para especificar quais DataGridTableStyle é usado ao exibir dados de um determinado DataTable, conjunto o MappingName para o TableName de um DataTable.
The GridTableStylesCollection recuperados através de TableStyles propriedade contém todo o DataGridTableStyle objetos usados por um System.Windows.Forms.DataGrid controle. A coleção pode conter quantos DataGridTableStyle objetos conforme necessário, no entanto, o MappingName de cada um deve ser exclusiva. Em time de execução, isso permite a substituição de um outro DataGridTableStyle para os mesmos dados, dependendo da preferência do usuário. Para fazer isso:
-
popular o GridTableStylesCollection com DataGridTableStyle objetos. If a DataGridTableStyle existe o GridTableStylesCollection cujo MappingName o valor da propriedade é igual a DataTable objeto TableName propriedade, o DataTable é exibida com isso DataGridTableStyle. Se nenhum DataGridTableStyle existe com correspondente MappingName, o DataTable é exibida com o estilo padrão para tabelas de grade de dados.
-
Quando um estilo de grade diferente for necessário, use o Item propriedade para selecionar o apropriado DataGridTableStyle (passar o TableName para o Item propriedade) e conjunto o MappingName do objeto retornado para um novo valor.
-
Use o Item propriedade para selecionar o desejado DataGridTableStylee defina seu MappingName para o TableName da DataTable.
Cuidado:
|
|---|
|
Criar sempre DataGridColumnStyle objetos e adicioná-los para o GridColumnStylesCollection antes de adicionar DataGridTableStyle objetos para o GridTableStylesCollection. Quando você adiciona um vazio DataGridTableStyle com um válido MappingName valor para a coleção DataGridColumnStyle objetos serão gerados automaticamente para você. Conseqüentemente, uma exceção será lançada se você tentar adicionar novo DataGridColumnStyle objetos com duplicata MappingName valores para o GridColumnStylesCollection. |
Para determinar quais DataGridTableStyle é exibido no momento, use o DataSource e DataMember propriedades das System.Windows.Forms.DataGrid para retornar uma CurrencyManager. Se a fonte de dados implementa o ITypedList interface, você pode usar o GetListName método para retornar a MappingName da tabela corrente. Isso é mostrado no código de translation from VPE for Csharp 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 por meio de DataRelation objetos e exibida no momento DataTable é uma tabela filho, o DataMember retornará uma seqüência de caracteres na forma de TableName.RelationName (no caso mais simples). Se o DataTable está mais abaixo na hierarquia, a seqüência de caracteres consistirá de nome da tabela pai seguido pelo necessário RelationName valores 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, Customers, e Orderse dois DataRelation objetos nomeados RegionsToCustomers e CustomersToOrders, o DataMemberpropriedade retornará "Regions.RegionsToCustomers.CustomersToOrders". No entanto, a MappingNameem seguida, será "Orders".
A coleção de DataGridTableStyle objetos é retornada por meio do TableStyles propriedade das System.Windows.Forms.DataGrid.
Quando um DataGridTableStyle for exibido, as configurações para o DataGridTableStyle substituirão as configurações para o System.Windows.Forms.DataGrid controle. Se um valor não for conjunto para um determinado DataGridTableStyle propriedade, o System.Windows.Forms.DataGrid valor do controle será usado. A lista a seguir mostra o DataGridColumnStyle propriedades que podem ser conjunto para substituir System.Windows.Forms.DataGrid Propriedades de controle:
Para vincular o DataGrid a uma matriz de objetos fortemente tipada, o tipo de objeto deve conter propriedades públicas. Para criar um DataGridTableStyle que exibe a matriz, defina a propriedade DataGridTableStyle.MappingName para typename, sendo typename substituído pelo nome do tipo objeto. Observe também que a propriedade MappingName diferencia maiúsculas de minúsculas; o nome do tipo deve ter correspondência exata. Consulte a propriedade MappingName para um exemplo.
Você também pode vincular o DataGrid a um ArrayList. Uma característica do ArrayList é que ele pode conter objetos de múltiplos tipos, mas o DataGrid só pode ser vinculado a uma lista quando todos os itens da lista são do mesmo tipo do primeiro item. Isso significa que todos os objetos devem ou ser do mesmo tipo, ou herdar da mesma classe conforme o primeiro item na lista. Por exemplo, se o primeiro item de uma lista for um Control, o segundo item poderia ser um TextBox (que herda de Control). Se, por outro lado, o primeiro item é um TextBox, o segundo objeto não pode ser um Control. Além disso, a ArrayList deve ter itens nele quando é limite e objetos das DataGridTableStyle deve conter propriedades públicas. Uma ArrayList vazia resultará em uma grade vazia. Quando vincular a um ArrayList, defina o MappingName do DataGridTableStyle para "ArrayList" (nome do tipo).
O exemplo de código a seguir cria dois DataGridTableStyle instâncias e define o MappingName de cada objeto para o TableName de um DataTable em um DataSet. O exemplo, em seguida, adiciona DataGridColumnStyle objetos para o GridColumnStylesCollection de cada DataGridTableStyle. Para obter um exemplo que é executado, consulte o System.Windows.Forms.DataGrid exemplo.
PrivateSub AddCustomDataTableStyle()
' Create a new DataGridTableStyle and set ' its MappingName to the TableName of a DataTable. Dim ts1 AsNew 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 AsNew DataGridBoolColumn()
boolCol.MappingName = "Current"
boolCol.HeaderText = "IsCurrent Customer"
boolCol.Width = 150
ts1.GridColumnStyles.Add(boolCol)
' Add a second column style.Dim TextCol AsNew DataGridTextBoxColumn()
TextCol.MappingName = "custName"
TextCol.HeaderText = "Customer Name"
TextCol.Width = 250
ts1.GridColumnStyles.Add(TextCol)
' Create the second table style with columns.Dim ts2 AsNew 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 AsNew 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 AsNew 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)
EndSub 'AddCustomDataTableStyle
privatevoid 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);
}
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.set_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.set_MappingName("Current");
boolCol.set_HeaderText("IsCurrent Customer");
boolCol.set_Width(150);
ts1.get_GridColumnStyles().Add(boolCol);
// Add a second column style.
DataGridColumnStyle textCol = new DataGridTextBoxColumn();
textCol.set_MappingName("custName");
textCol.set_HeaderText("Customer Name");
textCol.set_Width(250);
ts1.get_GridColumnStyles().Add(textCol);
// Create the second table style with columns.
DataGridTableStyle ts2 = new DataGridTableStyle();
ts2.set_MappingName("Orders");
// Change the colors.
ts2.set_ForeColor(Color.get_Yellow());
ts2.set_AlternatingBackColor(Color.get_Blue());
ts2.set_BackColor(Color.get_Blue());
// Create new DataGridColumnStyle objects.
DataGridColumnStyle cOrderDate = new DataGridTextBoxColumn();
cOrderDate.set_MappingName("OrderDate");
cOrderDate.set_HeaderText("Order Date");
cOrderDate.set_Width(100);
ts2.get_GridColumnStyles().Add(cOrderDate);
PropertyDescriptorCollection pcol =
this.get_BindingContext().
get_Item(myDataSet, "Customers.custToOrders").
GetItemProperties();
DataGridColumnStyle csOrderAmount =
new DataGridTextBoxColumn(pcol.get_Item("OrderAmount"), "c", true);
csOrderAmount.set_MappingName("OrderAmount");
csOrderAmount.set_HeaderText("Total");
csOrderAmount.set_Width(100);
ts2.get_GridColumnStyles().Add(csOrderAmount);
// Add the DataGridTableStyle objects to the collection.
myDataGrid.get_TableStyles().Add(ts1);
myDataGrid.get_TableStyles().Add(ts2);
} //AddCustomDataTableStyle
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.DataGridTableStyle
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC
o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

Cuidado: