DataGridTableStyle Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje tabulku nakreslenou ovládacím DataGrid prvku za běhu.
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
- Dědičnost
- Implementuje
Příklady
Následující příklad kódu vytvoří dvě DataGridTableStyle instance a nastaví MappingName každý objekt na TableName objekt DataTable v objektu DataSet. Příklad pak přidá DataGridColumnStyle objekty do každého DataGridTableStyleobjektu GridColumnStylesCollection . Příklad, který se spustí, najdete v příkladu 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
Poznámky
Ovládací System.Windows.Forms.DataGrid prvek zobrazuje data ve formě mřížky. Je DataGridTableStyle třída, která představuje pouze nakreslenou mřížku. Tato mřížka by neměla být zaměňována s DataTable třídou, která je možným zdrojem dat pro mřížku. Místo toho přesně představuje mřížku tak, DataGridTableStyle jak je namalována v ovládacím prvku. Proto můžete prostřednictvím objektu DataGridTableStyle řídit vzhled mřížky pro každý DataTableobjekt . Pokud chcete určit, která DataGridTableStyle se má použít při zobrazení dat z konkrétního DataTable, nastavte MappingName hodnotu na DataTableTableName hodnotu .
Objekt GridTableStylesCollection načtený prostřednictvím TableStyles vlastnosti obsahuje všechny DataGridTableStyle objekty používané ovládacím prvku System.Windows.Forms.DataGrid . Kolekce může obsahovat tolik objektů, kolik DataGridTableStyle potřebujete, ale MappingName každý z nich musí být jedinečný. Za běhu to umožňuje nahradit stejná data jiným DataGridTableStyle v závislosti na preferenci uživatele. Použijte následující postup:
Naplnit objekty GridTableStylesCollectionDataGridTableStyle . DataGridTableStyle Pokud existuje hodnota GridTableStylesCollection vlastnosti, jejíž MappingName hodnota se DataTable rovná vlastnosti objektu TableNameDataTable, zobrazí se s tímto DataGridTableStyleobjektem . Pokud neexistuje žádný DataGridTableStyle odpovídající MappingNameobjekt , DataTable zobrazí se s výchozím stylem pro tabulky datové mřížky.
Pokud potřebujete jiný styl mřížky, pomocí
Item
vlastnosti vyberte odpovídající DataGridTableStyle (předejte TableNameItem[] vlastnost) a nastavte MappingName vrácený objekt na novou hodnotu.Item[] Pomocí vlastnosti vyberte požadovaný DataGridTableStyleobjekt a nastavte ji MappingName na TableNameDataTablehodnotu .
Upozornění
Před přidáním DataGridTableStyle objektů do objektu GridColumnStylesCollection vždy vytvořte DataGridColumnStyle objekty a přidejte je do objektu GridTableStylesCollection. Když do kolekce přidáte prázdnou DataGridTableStyle s platnou MappingName hodnotou, DataGridColumnStyle objekty se automaticky vygenerují. V důsledku toho dojde k výjimce, pokud se do objektu GridColumnStylesCollectionpokusíte přidat nové DataGridColumnStyle objekty s duplicitními MappingName hodnotami.
Chcete-li zjistit, která DataGridTableStyle položka je aktuálně zobrazena, použijte DataSource vlastnosti System.Windows.Forms.DataGrid a DataMember k vrácení objektu CurrencyManager. Pokud zdroj dat implementuje ITypedList rozhraní, můžete použít metodu GetListName k vrácení MappingName aktuální tabulky. To je znázorněno v následujícím kódu jazyka 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 Pokud obsahuje DataTable objekty související prostřednictvím DataRelation objektů a aktuálně zobrazená DataTable tabulka je podřízená tabulka, DataMember vrátí řetězec řetězec ve tvaru TableName.RelationName (v nejjednodušším případě).
DataTable Pokud je hodnota v hierarchii dále dole, řetězec se bude skládat z názvu nadřazené tabulky následované potřebnými RelationName hodnotami potřebnými k dosažení úrovně tabulky. Představte si například tři DataTable objekty v hierarchické relaci s názvem (shora dolů) Regions
, Customers
a Orders
dva DataRelation objekty s názvy RegionsToCustomers
a CustomersToOrders
, DataMember vlastnost vrátí "Regions.RegionsToCustomers.CustomersToOrders". Pak ale MappingName bude "Objednávky".
Kolekce DataGridTableStyle objektů je vrácena prostřednictvím TableStyles vlastnosti System.Windows.Forms.DataGrid.
DataGridTableStyle Když se zobrazí, přepíše nastavení pro DataGridTableStyle ovládací prvek nastaveníSystem.Windows.Forms.DataGrid. Pokud hodnota není nastavena pro konkrétní DataGridTableStyle vlastnost, System.Windows.Forms.DataGrid použije se místo toho hodnota ovládacího prvku. Následující seznam obsahuje DataGridColumnStyle vlastnosti, které lze nastavit tak, aby přepsaly System.Windows.Forms.DataGrid vlastnosti ovládacího prvku:
Pokud chcete vytvořit vazbu DataGrid na pole objektů silného typu, musí typ objektu obsahovat veřejné vlastnosti. Pokud chcete vytvořit DataGridTableStyle objekt, který zobrazí pole, nastavte DataGridTableStyle.MappingName vlastnost na místo typename
, kde typename
se nahradí názvem typu objektu. Všimněte si také, že ve MappingName vlastnosti se rozlišují malá a velká písmena. Název typu musí být přesně shodný. Příklad najdete ve MappingName vlastnosti.
Můžete také svázat s DataGrid objektem ArrayList. Vlastnost objektu ArrayList je, že může obsahovat objekty více typů, ale DataGrid může vytvořit vazbu na takový seznam pouze tehdy, když jsou všechny položky v seznamu stejného typu jako první položka. To znamená, že všechny objekty musí být buď stejného typu, nebo musí dědit ze stejné třídy jako první položka v seznamu. Pokud je Controlnapříklad první položkou v seznamu , druhá položka může být ( TextBox která dědí z Control). Pokud je naproti tomu první položkou TextBox, nemůže být druhým objektem Control. ArrayList Kromě toho musí mít položky v sobě, když je svázán a objekty v DataGridTableStyle musí obsahovat veřejné vlastnosti. Výsledkem prázdné ArrayList bude prázdná mřížka. Při vytváření vazby na ArrayListhodnotu nastavte MappingName hodnotu DataGridTableStyle ArrayList (název typu).
Konstruktory
DataGridTableStyle() |
Inicializuje novou instanci DataGridTableStyle třídy . |
DataGridTableStyle(Boolean) |
Inicializuje novou instanci DataGridTableStyle třídy pomocí zadané hodnoty k určení, zda je tabulka mřížky výchozím stylem. |
DataGridTableStyle(CurrencyManager) |
Inicializuje novou instanci DataGridTableStyle třídy se zadaným CurrencyManagerparametrem . |
Pole
DefaultTableStyle |
Získá výchozí styl tabulky. |
Vlastnosti
AllowSorting |
Určuje, zda je při použití tabulky mřížky DataGridTableStyle povoleno řazení. |
AlternatingBackColor |
Získá nebo nastaví barvu pozadí lichých řádků mřížky. |
BackColor |
Získá nebo nastaví barvu pozadí sudých řádků mřížky. |
CanRaiseEvents |
Získá hodnotu označující, zda komponenta může vyvolat událost. (Zděděno od Component) |
ColumnHeadersVisible |
Získá nebo nastaví hodnotu označující, zda záhlaví sloupců jsou viditelné. |
Container |
Získá objekt IContainer , který obsahuje Component. (Zděděno od Component) |
DataGrid |
Získá nebo nastaví DataGrid ovládací prvek pro nakreslenou tabulku. |
DesignMode |
Získá hodnotu, která označuje, zda je aktuálně v režimu návrhu Component . (Zděděno od Component) |
Events |
Získá seznam obslužných rutin událostí, které jsou připojeny k tomuto Component. (Zděděno od Component) |
ForeColor |
Získá nebo nastaví barvu popředí tabulky mřížky. |
GridColumnStyles |
Získá kolekci sloupců nakreslených pro tuto tabulku. |
GridLineColor |
Získá nebo nastaví barvu čar mřížky. |
GridLineStyle |
Získá nebo nastaví styl čar mřížky. |
HeaderBackColor |
Získá nebo nastaví barvu pozadí záhlaví. |
HeaderFont |
Získá nebo nastaví písmo použité pro titulky záhlaví. |
HeaderForeColor |
Získá nebo nastaví barvu popředí záhlaví. |
LinkColor |
Získá nebo nastaví barvu textu odkazu. |
LinkHoverColor |
Získá nebo nastaví barvu zobrazenou při najetí myší na text odkazu. |
MappingName |
Získá nebo nastaví název použitý k mapování této tabulky na konkrétní zdroj dat. |
PreferredColumnWidth |
Získá nebo nastaví šířku pro vytvoření sloupců při zobrazení nové mřížky. |
PreferredRowHeight |
Získá nebo nastaví výšku použito k vytvoření řádku při zobrazení nové mřížky. |
ReadOnly |
Získá nebo nastaví hodnotu označující, zda lze upravovat sloupce. |
RowHeadersVisible |
Získá nebo nastaví hodnotu označující, zda jsou záhlaví řádků viditelná. |
RowHeaderWidth |
Získá nebo nastaví šířku záhlaví řádků. |
SelectionBackColor |
Získá nebo nastaví barvu pozadí vybraných buněk. |
SelectionForeColor |
Získá nebo nastaví barvu popředí vybraných buněk. |
Site |
Získá nebo nastaví ISite z Component. (Zděděno od Component) |