DataGridTableStyle クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
DataGrid コントロールによって実行時に描画されるテーブルを表します。
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
- 継承
- 実装
例
次のコード例では、2 つのDataGridTableStyleインスタンスを作成し、各オブジェクトの を MappingName 内DataSetの の DataTable にTableName設定します。 次に、各 DataGridTableStyleの にオブジェクトをGridColumnStylesCollection追加DataGridColumnStyleします。 を実行する例については、 の例を 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
注釈
コントロールは System.Windows.Forms.DataGrid 、グリッドの形式でデータを表示します。 DataGridTableStyleは、描画されたグリッドのみを表すクラスです。 このグリッドは、 クラスと DataTable 混同しないでください。これは、グリッドのデータソースとして考えられます。 代わりに、 は DataGridTableStyle コントロールで描画されるグリッドを厳密に表します。 したがって、 を DataGridTableStyle 使用して、各 DataTableのグリッドの外観を制御できます。 特定DataTableの からのデータを表示するときに使用するDataGridTableStyleを指定するには、 を MappingName の DataTableにTableName設定します。
GridTableStylesCollectionプロパティを通じて取得された にはTableStyles、コントロールによって使用されるすべてのDataGridTableStyleオブジェクトがSystem.Windows.Forms.DataGrid含まれます。 コレクションには必要な数の DataGridTableStyle オブジェクトを含めることができますが、それぞれの オブジェクトは MappingName 一意である必要があります。 実行時に、これにより、ユーザーの好みに応じて、同じデータに対して別 DataGridTableStyle の を置き換えることができます。 これを行うには、次の手順を実行します。
オブジェクトを設定DataGridTableStyleしますGridTableStylesCollection。 DataGridTableStyleプロパティ値がオブジェクトTableNameの プロパティとMappingName等しい が にGridTableStylesCollection存在するDataTable場合は、 DataTable がこの DataGridTableStyleと共に表示されます。 一致する MappingNameDataTable が存在しないDataGridTableStyle場合、 はデータ グリッド テーブルの既定のスタイルで表示されます。
別のグリッド スタイルが必要な場合は、 プロパティを
Item
使用して適切なDataGridTableStyleを選択し (プロパティに をTableNameItem[]渡す)、返されたオブジェクトの をMappingName新しい値に設定します。プロパティを Item[] 使用して目的 DataGridTableStyleの を選択し、その を MappingName の に TableName 設定します DataTable。
注意事項
オブジェクトを に追加する前に、常に オブジェクトをGridColumnStylesCollection作成DataGridColumnStyleし、 GridTableStylesCollectionに追加DataGridTableStyleします。 有効なMappingName値を持つ空DataGridTableStyleの をコレクションに追加すると、DataGridColumnStyleオブジェクトが自動的に生成されます。 したがって、重複するMappingName値を持つ新しいDataGridColumnStyleオブジェクトを に追加しようとすると、例外がGridColumnStylesCollectionスローされます。
現在表示されているのを DataGridTableStyle 確認するには、 の DataSource プロパティと DataMember プロパティを System.Windows.Forms.DataGrid 使用して を CurrencyManager返します。 データ ソースで インターフェイスが実装されている ITypedList 場合は、 メソッドを GetListName 使用して現在のテーブルの を MappingName 返すことができます。 これは、次の 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 オブジェクトにDataRelation関連するオブジェクトが含まれておりDataTable、現在表示されている DataTable が子テーブルの場合、 DataMember は TableName.RelationName の形式で文字列を返します (最も簡単な場合)。
DataTableが階層のさらに下にある場合、文字列は親テーブルの名前の後にテーブルのレベルに到達するために必要なRelationName値で構成されます。 たとえば、(上から下) Customers
Orders
Regions
、 という名前の階層関係にある 3 つのDataTableオブジェクトと、 および CustomersToOrders
DataMember という名前RegionsToCustomers
の 2 つのDataRelationオブジェクトを想像すると、プロパティは "Regions.RegionsToCustomers.CustomersToOrders" を返します。 ただし、 MappingName は "Orders" になります。
オブジェクトのDataGridTableStyleコレクションは、 の プロパティSystem.Windows.Forms.DataGridをTableStyles通じて返されます。
DataGridTableStyleが表示されると、 のDataGridTableStyle設定によってコントロールの設定がSystem.Windows.Forms.DataGridオーバーライドされます。 特定 DataGridTableStyle のプロパティに値が設定されていない場合は、 System.Windows.Forms.DataGrid 代わりにコントロールの値が使用されます。 次の一覧は、コントロールのプロパティを DataGridColumnStyle オーバーライド System.Windows.Forms.DataGrid するように設定できるプロパティを示しています。
をオブジェクトの DataGrid 厳密に型指定された配列にバインドするには、オブジェクト型にパブリック プロパティが含まれている必要があります。 配列を表示する を DataGridTableStyle 作成するには、 プロパティを DataGridTableStyle.MappingName に typename
設定します。ここで typename
、 はオブジェクト型の名前に置き換えられます。 また、 MappingName プロパティでは大文字と小文字が区別されます。型名は正確に一致する必要があります。 例については、 MappingName プロパティを参照してください。
を にArrayListバインドDataGridすることもできます。 の特徴は、複数の ArrayList 型のオブジェクトを含めることができるが、 は、リスト内のすべての項目が DataGrid 最初の項目と同じ型の場合にのみ、そのようなリストにバインドできることです。 つまり、すべてのオブジェクトが同じ型であるか、リスト内の最初の項目と同じクラスから継承する必要があります。 たとえば、リスト内の最初の項目が の場合、Control2 番目の項目は ( からControl継承される) である可能性がありますTextBox。 一方、最初の項目が の TextBox場合、2 番目のオブジェクトを に Controlすることはできません。 さらに、 ArrayList にバインドされている場合は 項目が含まれている必要があり、 内の オブジェクトにはパブリック プロパティが DataGridTableStyle 含まれている必要があります。 空 ArrayList の場合、グリッドは空になります。 にArrayListバインドする場合は、 の DataGridTableStyle を MappingName "ArrayList" (型名) に設定します。
コンストラクター
DataGridTableStyle() |
DataGridTableStyle クラスの新しいインスタンスを初期化します。 |
DataGridTableStyle(Boolean) |
指定した値を使用して DataGridTableStyle クラスの新しいインスタンスを初期化し、そのグリッド テーブルを既定のスタイルにするかどうかを決定します。 |
DataGridTableStyle(CurrencyManager) |
DataGridTableStyle を指定して、CurrencyManager クラスの新しいインスタンスを初期化します。 |
フィールド
DefaultTableStyle |
既定のテーブル スタイルを取得します。 |
プロパティ
AllowSorting |
DataGridTableStyle を使用する場合に、グリッド テーブルで並べ替えを実行できるかどうかを示します。 |
AlternatingBackColor |
グリッドの奇数行の背景色を取得または設定します。 |
BackColor |
グリッドの偶数行の背景色を取得または設定します。 |
CanRaiseEvents |
コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。 (継承元 Component) |
ColumnHeadersVisible |
列ヘッダーを表示するかどうかを示す値を取得または設定します。 |
Container |
IContainer を含む Component を取得します。 (継承元 Component) |
DataGrid |
描画されたテーブルの DataGrid コントロールを取得または設定します。 |
DesignMode |
Component が現在デザイン モードかどうかを示す値を取得します。 (継承元 Component) |
Events |
Component に結び付けられているイベント ハンドラーのリストを取得します。 (継承元 Component) |
ForeColor |
グリッド テーブルの前景色を取得または設定します。 |
GridColumnStyles |
テーブルに描画される列のコレクションを取得します。 |
GridLineColor |
グリッド線の色を取得または設定します。 |
GridLineStyle |
グリッド線のスタイルを取得または設定します。 |
HeaderBackColor |
ヘッダーの背景色を取得または設定します。 |
HeaderFont |
ヘッダーのキャプションに使用するフォントを取得または設定します。 |
HeaderForeColor |
ヘッダーの前景色を取得または設定します。 |
LinkColor |
リンク テキストの色を取得または設定します。 |
LinkHoverColor |
マウス ポインターをリンク テキストの上に配置したときに表示する色を取得または設定します。 |
MappingName |
テーブルを特定のデータ ソースに割り当てるときに使用する名前を取得または設定します。 |
PreferredColumnWidth |
新しいグリッドが表示されるときに作成する列に適用する幅を取得または設定します。 |
PreferredRowHeight |
新しいグリッドが表示されるときに作成する行に適用する高さを取得または設定します。 |
ReadOnly |
列を編集できるかどうかを示す値を取得または設定します。 |
RowHeadersVisible |
行ヘッダーを表示するかどうかを示す値を取得または設定します。 |
RowHeaderWidth |
行ヘッダーの幅を取得または設定します。 |
SelectionBackColor |
選択されているセルの背景色を取得または設定します。 |
SelectionForeColor |
選択されているセルの前景色を取得または設定します。 |
Site |
Component の ISite を取得または設定します。 (継承元 Component) |
メソッド
イベント
適用対象
こちらもご覧ください
.NET