True DBGrid for WinForms では、個別のスプリットのサイズとスケーリングを完全に制御できます。グリッドの正確な幅や高さを設定したり、列数や行数を固定したり、他のスプリットに対する比率でサイズを調整することができます。C1TrueDBGrid をはじめて使用する場合でも、概要を覚えるだけでさまざまな方法でスプリットを使用できます。
実行時、Split オブジェクトの実際のサイズは、その SplitSize プロパティと SplitSizeMode プロパティによって決まります。SplitSizeMode プロパティは測定の単位を指定します。SplitSize プロパティは単位数を指定します。C1TrueDBGrid はスプリットの3つのサイズ変更モードをサポートしており、これは、SplitSizeMode プロパティの設定によって決定されます。
プロパティ | 説明 |
---|---|
SizeModeEnum.Scalable | 他のスプリットに対して相対的に幅を指定する。 |
SizeModeEnum.Exact | コンテナの座標で固定幅を指定する。 |
SizeModeEnum.NumberofColumns | 固定列数を指定する。 |
スケーラブルなスプリットでは、SplitSize プロパティの値を使用して、スプリットが占めるスペースの割合が決定されます。その割合は、スケーラブルなスプリットの SplitSize 値を他のすべてのスケーラブルなスプリットの SplitSize 値の合計で割って求められます。つまり、それぞれのスケーラブルなスプリットの SplitSize プロパティを分子、スケーラブルなスプリットのサイズ合計を分母と考えることができます。スケーラブルなスプリットは、スケーラブルでないスプリットに割り当てられたスペースの残りのスペースを分け合います。デフォルトでは、すべてのスプリットがスケーラブルなので、グリッド表示領域全体を分け合います。グリッドに1つしかスプリットがない場合、SplitSizeMode は、常に Scalable です。
固定幅のスプリットでは、SplitSize プロパティの値を使用して、コンテナの座標における固定幅が指定されます。固定幅のスプリットでは、グリッドの水平境界内に収まらない部分は切り捨てられます。グリッドに1つしかスプリットがない場合、このモードは適用できません。
固定列数のスプリットでは、SplitSize プロパティを使用して、スプリット内に常に表示される列数が正確に指定されます。このスプリットでは、(コードまたはユーザーの操作によって)表示列がサイズ変更されたり、スプリット内の列が水平にスクロールされて表示列の幅が変化した場合に、グリッド全体が自動的に再設定されます。このモードは、主に水平方向にスクロールされない固定列を作成するために使用されますが、他にもさまざまな目的で使用できます。グリッドに1つしかスプリットがない場合、このモードは適用できません。
グリッドにスプリットが1つしかない(デフォルト)場合、スプリットはグリッドの幅全体に広がり、SplitSizeMode プロパティは常に Scalable に、SplitSize プロパティは常に 1 になります。スプリットが1つしかない場合は、これらのプロパティを設定しても何も効果はありません。複数のスプリットがあるときに、1つを除いてすべてを削除すると、残ったスプリットの SplitSizeMode プロパティおよび SplitSize プロパティは、それぞれ自動的に 0 および 1 に戻ります。
デフォルトでは、新しく作成したスプリットの SplitSizeMode プロパティは SizeModeEnum.Scalableに、SplitSize プロパティは1に設定されます。たとえば、次のコードで2つのスプリットを追加して作成するとします。:
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
' 左にスプリットを作成します Me.C1TrueDBGrid1.InsertHorizontalSplit(0) ' 別のスプリットを作成します Me.C1TrueDBGrid1.InsertHorizontalSplit(0) |
C# コードの書き方
C# |
コードのコピー
|
---|---|
// 左にスプリットを作成します別のスプリットを作成します this.c1TrueDBGrid1.InsertHorizontalSplit(0); // 別のスプリットを作成します this.c1TrueDBGrid1.InsertHorizontalSplit(0); The resulting grid display will appear as follows: |
これらのグリッドは、次のように表示されます。
各スプリットがグリッド領域のそれぞれ1/3ずつを占めることがわかります。これは、3つのスケーラブルなスプリットがあり、それぞれの SplitSize が1だからです。次のように、スプリットのサイズをそれぞれ1、2、および3に変更するとします。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
' 相対サイズを 1 に変更します Me.C1TrueDBGrid1.Splits(0).SplitSize = 1 ' 相対サイズを 2 に変更します Me.C1TrueDBGrid1.Splits(1).SplitSize = 2 ' 相対サイズを 3 に変更します Me.C1TrueDBGrid1.Splits(2).SplitSize = 3 |
C# コードの書き方
C# |
コードのコピー
|
---|---|
// 相対サイズを 1 に変更します this.c1TrueDBGrid1.Splits[0].SplitSize = 1; // 相対サイズを 2 に変更します this.c1TrueDBGrid1.Splits[1].SplitSize = 2; // 相対サイズを 3 に変更します this.c1TrueDBGrid1.Splits[2].SplitSize = 3; |
これらのグリッドは、次のように表示されます。
スプリットのサイズの合計が6(1+2+3)なので、各スプリットのサイズは、その SplitSize プロパティの値を分子、6を分母とする分数の割合になります。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Me.C1TrueDBGrid1.Splits(0).SplitSizeMode = C1.Win.C1TrueDBGrid.SizeModeEnum.Scalable Me.C1TrueDBGrid1.Splits(0).SplitSize = 1 Me.C1TrueDBGrid1.Splits(1).SplitSizeMode = C1.Win.C1TrueDBGrid.SizeModeEnum.Exact Me.C1TrueDBGrid1.Splits(1).SplitSize = 250 Me.C1TrueDBGrid1.Splits(2).SplitSizeMode = C1.Win.C1TrueDBGrid.SizeModeEnum.Scalable Me.C1TrueDBGrid1.Splits(2).SplitSize = 2 |
C# コードの書き方
C# |
コードのコピー
|
---|---|
this.c1TrueDBGrid1.Splits[0].SplitSizeMode = C1.Win.C1TrueDBGrid.SizeModeEnum.Scalable; this.c1TrueDBGrid1.Splits[0].SplitSize = 1; this.c1TrueDBGrid1.Splits[1].SplitSizeMode = C1.Win.C1TrueDBGrid.SizeModeEnum.Exact; this.c1TrueDBGrid1.Splits[1].SplitSize = 250; this.c1TrueDBGrid1.Splits[2].SplitSizeMode = C1.Win.C1TrueDBGrid.SizeModeEnum.Scalable; this.c1TrueDBGrid1.Splits[2].SplitSize = 2; |