Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
コレクションを使用する
オブジェクトモデル > オブジェクトとコレクションを使用する > コレクションを使用する

C1TrueDBGrid オブジェクトには、さまざまなオブジェクトを管理する8つの異なるコレクションが含まれます。また、これらのコレクションにそれぞれ対応し、そのコレクションオブジェクトを返すプロパティが C1TrueDBGrid オブジェクト内にあります。そのため、コード内でグリッドを使用する場合に、完全なコレクション名を覚えておく必要がありません。次に、これらのコレクションとプロパティの対応を示します。

コレクション 関連プロパティ
C1DataColumnCollection Columns プロパティ
C1DisplayColumnCollection DisplayColumns プロパティ
GridStyleCollection Styles プロパティ
SelectedColumnCollection SelectedCols プロパティ
SelectedRowCollection SelectedRows プロパティ
SplitCollection Splits プロパティ
ValueItemCollection Values プロパティ

デフォルトでは、SplitCollection オブジェクトには1つのSplit オブジェクトが含まれます。GridStyleCollection オブジェクトには、CaptionEditorEvenRowFilterBar、FooterGroupHeadingHighlightRowInactiveNormalOddRowRecordSelector、および Selected という13個のデフォルトのStyle オブジェクトが含まれます。

コレクション内のオブジェクトを参照するには、0から始まるインデックスを使用します。次のように、Split オブジェクトのプロパティを設定または読み取ることができます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' Split オブジェクトのプロパティを読み取ります
variable = Me.C1TrueDBGrid1.Splits(0).Property
 
' Split オブジェクトのプロパティを設定します
Me.C1TrueDBGrid1.Splits(0).Property = variable

C# コードの書き方

C#
コードのコピー
// Split オブジェクトのプロパティを読み取ります
variable = this.c1TrueDBGrid1.Splits[0].Property;
 
// Split オブジェクトのプロパティを設定します
this.c1TrueDBGrid1.Splits[0].Property = variable;

コレクションの Item メソッドを使用して、コレクション内のオブジェクトの参照を作成できます。次のコードは、グリッドのデフォルトの Split オブジェクトへの参照を作成しています。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' Split0 を Split オブジェクトとして宣言します
Dim Split0 As C1.Win.C1TrueDBGrid.Split
 
' コレクション内の最初のスプリットを参照するように Split0 を設定します
Split0 = Me.C1TrueDBGrid1.Splits(0)

C#コードの書き方

C#
コードのコピー
// Split0 を Split オブジェクトとして宣言します
C1.Win.C1TrueDBGrid.Split Split0;
 
// コレクション内の最初のスプリットを参照するように Split0 を設定します
Split0 = this.c1TrueDBGrid1.Splits[0];

上の例で、名前空間修飾子を使用していることに注意してください。他のコントロールとの潜在的な名前の競合を解決するために、名前空間修飾子を使用することをお勧めします。たとえば、同じプロジェクトで別のコントロールを使用しており、そのコントロールでも Split という名前のオブジェクトを定義している場合は、C1TrueDBGrid 名前空間修飾子が必要になります。その別のコントロールにも名前空間修飾子を付けます。

コレクションの Item メソッドは暗黙的に使用できるため、省略できます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' Split0 を Split オブジェクトとして宣言します
Dim Split0 As C1.Win.C1TrueDBGrid.Split
 
' コレクション内の最初のスプリットを参照するように Split0 を設定します
Split0 = Me.C1TrueDBGrid1.Splits(0)

C# コードの書き方

C#
コードのコピー
// Split0 を Split オブジェクトとして宣言します
C1.Win.C1TrueDBGrid.Split Split0;
 
// コレクション内の最初のスプリットを参照するように Split0 を設定します
Split0 = this.c1TrueDBGrid1.Splits[0];

ここで、Split0 を使用して、Split オブジェクトのプロパティを取得または設定したり、メソッドを実行することができます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
'Split オブジェクトのプロパティを読み取ります
variable = Split0.Property
 
' Split オブジェクトのプロパティを設定します
Split0.Property = variable
 
' Split オブジェクトのメソッドを実行します
Split0.Method (arg1, arg2, ...)

C# コードの書き方

C#
コードのコピー
//Split オブジェクトのプロパティを読み取ります
variable = Split0.Property; 
 
// Split オブジェクトのプロパティを設定します
Split0.Property = variable; 
 
//Split オブジェクトのメソッドを実行します
Split0.Method (arg1, arg2, ...);

1つ以上のオブジェクトプロパティを取得および設定することもよくあります。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' Split オブジェクトのプロパティを読み取ります
variable1 = Me.C1TrueDBGrid1.Splits(0,0).Property1
variable2 = Me.C1TrueDBGrid1.Splits(0,0).Property2
 
' Split オブジェクトのプロパティを設定します
Me.C1TrueDBGrid1.Splits(0,0).Property1 = variable1
Me.C1TrueDBGrid1.Splits(0,0).Property2 = variable2

C# コードの書き方

C#
コードのコピー
// Split オブジェクトのプロパティを読み取ります
variable1 = this.c1TrueDBGrid1.Splits[0,0].Property1;
variable2 = this.c1TrueDBGrid1.Splits[0,0].Property2;
 
// Split オブジェクトのプロパティを設定します
this.c1TrueDBGrid1.Splits[0,0].Property1 = variable1;
this.c1TrueDBGrid1.Splits[0,0].Property2 = variable2;

このコードは、Me.C1TrueDBGrid1.Splits(0,0) オブジェクトに何度もアクセスしているため、あまり効率よくありません。事前にこのオブジェクトへの参照を1つ作成しておき、それを繰り返し使用する方が効率的です。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' Split0 を Split オブジェクトとして宣言します
Dim Split0 As C1TrueDBGrid.Split
 
' コレクション内の最初のスプリットを参照するように Split0 を設定します
Split0 = Me.C1TrueDBGrid1.Splits.Item(0,0)
 
' Split オブジェクトのプロパティを読み取ります
variable1 = Split0.Property1
variable2 = Split0.Property2
 
' Split オブジェクトのプロパティを設定します
Split0.Property1 = variable1
Split0.Property2 = variable2

C# コードの書き方

C#
コードのコピー
// Split0 を Split オブジェクトとして宣言します
C1TrueDBGrid.Split Split0;
 
// コレクション内の最初のスプリットを参照するように Split0 を設定します
Split0 = this.c1TrueDBGrid1.Splits[0,0];
 
// Split オブジェクトのプロパティを読み取ります
variable1 = Split0.Property1;
variable2 = Split0.Property2;
 
// Split オブジェクトのプロパティを設定します
Split0.Property1 = variable1;
Split0.Property2 = variable2;

これで、たいへん効率よくなり、コードも読みやすくなります。.NET アプリケーションで頻繁にコレクションオブジェクトにアクセスする場合は、このガイドラインに従うことで、コードのパフォーマンスを著しく向上させることができます。

このテクニックは、C1TrueDBGrid の他のオブジェクトとコレクション、および一般に Visual Studio のオブジェクトとコレクションにも同様に適用できます。グリッドの場合に特に重要なのは、C1DataColumn オブジェクトと C1DataColumnCollection オブジェクトです(C1DisplayColumn オブジェクトも同様)。

Visual Basic コードの書き方

Visual Basic
コードのコピー
'Cols を Columns コレクション オブジェクトとして宣言し、C1TrueDBGrid1 の C1DataColumnCollection オブジェクトを参照するように設定します。
Dim Cols As C1.Win.C1TrueDBGrid.C1DataColumnCollection
Cols = Me.C1TrueDBGrid1.Columns
 
' Col0 を C1DataColumn オブジェクトとして宣言し、コレクション内の最初の Column オブジェクトを参照するように設定します。
Dim Col0 As New C1.Win.C1TrueDBGrid.C1DataColumn
Col0 = Cols(0)
 
' C1DataColumn オブジェクトの Property1 を取得および設定します。
variable1 = Col0.Property1
Col0.Property1 = variable1
 
' C1DataColumn オブジェクトの Method1(Sub として宣言)を実行します
Col0.Method1 (arg1, arg2, ...)
 
' C1DataColumn オブジェクトの Method2(Function として宣言)を実行します。
variable2 = Col0.Method2(arg1)

C# コードの書き方

C#
コードのコピー
// Cols を Columns コレクション オブジェクトとして宣言し、C1TrueDBGrid1 の C1DataColumnCollection オブジェクトを参照するように設定します。
C1.Win.C1TrueDBGrid.C1DataColumnCollection Cols;
Cols = this.c1TrueDBGrid1.Columns;
 
// Col0 を C1DataColumn オブジェクトとして宣言し、コレクション内の最初の Column オブジェクトを参照するように設定します。
C1.Win.C1TrueDBGrid.C1DataColumn Col0 = new C1TrueDBGrid.DataColumn();
Col0 = Cols[0];
 
// C1DataColumn オブジェクトの Property1 を取得および設定します。
variable1 = Col0.Property1;
Col0.Property1 = variable1;
 
// C1DataColumn オブジェクトの Method1(Sub として宣言)を実行します
Col0.Method1 (arg1, arg2, ...);
 
// C1DataColumn オブジェクトの Method2(Function として宣言)を実行します。
variable2 = Col0.Method2(arg1);

オブジェクトの複数のプロパティを効率よく設定するために、Visual Basic には With...End With 文も用意されています。この文を使用すると、各プロパティを明示的に変数に割り当てる必要がありません。たとえば、次のコードは、グリッドの最初の列の複数のプロパティを設定しています。コレクションのインデックスが0で始まることに注意してください。

Visual Basic コードの書き方

Visual Basic
コードのコピー
With Me.C1TrueDBGrid1.Columns(0)
    .Property1 = variable1
    .Property2 = variable2
End With

C#コードの書き方

C#
コードのコピー
this.c1TrueDBGrid1.Columns[0].Property1 = variable1;
this.c1TrueDBGrid1.Columns[0].Property2 = variable2;
関連トピック