Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
垂直方向のスクロールとスプリットグループ
スプリットの使用方法 > 垂直方向のスクロールとスプリットグループ

デフォルトでは、グリッドにはスプリットインデックス0の水平スプリットが1つだけあります。また、その HScrollBar および  VScrollBar の各スタイルプロパティは、ScrollBarStyleEnum.Automaticに設定されています。つまり、列の幅および有効なデータ行の数に応じて、必要時に水平スクロールバーや垂直スクロールバーが表示されます。デフォルトのスプリットの HorizontalScrollGroup プロパティと VerticalScrollGroup プロパティは1に設定されています。同じスクロールグループプロパティの設定を持つスプリットは、垂直方向または水平方向に一緒にスクロールします。新しく作成されたスプリットは、スクロールバーの状態とスクロールグループプロパティの両方を親スプリットから継承します。同じ HorizontalScrollGroup または VerticalScrollGroup に属するすべてのスプリットで、HScrollBar または VScrollBar のスタイルプロパティが ScrollBarStyleEnum.Automatic に設定されている場合、垂直スクロールバーはスクロールグループの右端のスプリットだけに、水平スクロールバーはスクロールグループの下端のスプリットだけに表示されます。この1つのスクロールバーを操作すると、同じスクロールグループ内のすべてのスプリットが同時にスクロールされます。

たとえば、次のコードで2つのスプリットを追加して作成するとします。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' 左にスプリットを作成します
Me.C1TrueDBGrid1.InsertHorizontalSplit(0)
 
' 別のスプリットを作成します
Me.C1TrueDBGrid1.InsertHorizontalSplit(0)

C# コードの書き方

C#
コードのコピー
// 左にスプリットを作成します
this.c1TrueDBGrid1.InsertHorizontalSplit(0); 
 
// 別のスプリットを作成します
this.c1TrueDBGrid1.InsertHorizontalSplit(0); 

これらのグリッドは、次のように表示されます。

これら3つのスプリットは、すべて同じ HScrollBar 設定と VScrollBar 設定を持ち、VerticalScrollGroup は1に設定されています。ただし、垂直スクロールバーは、右端のスプリットに1つだけ表示されます。このスクロールバーを操作すると、3つのスプリットがすべて同時にスクロールされます。

垂直スプリットも同様に動作します。グリッドに2つの垂直スプリットを追加すると、すべてのスプリットの HorizontalScrollGroup 設定が1になります。これで、グリッドの下端に水平スクロールバーが1つだけ表示され、このスクロールバーをスクロールすると、3つのスプリットが同時にスクロールされます

スプリットのスクロールグループプロパティの1つを変更すると、独立してスクロールする複数のスプリットグループを作成できます。上の例で、中央のスプリットの HorizontalScrollGroup プロパティを2に設定すると、新しいスクロールグループが作成されます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Me.C1TrueDBGrid1.Splits.Item(0,1).HorizontalScrollGroup = 2

C# コードの書き方

C#
コードのコピー
this.c1TrueDBGrid1.Splits[0,1].HorizontalScrollGroup = 2;

この文を実行すると、中央のスプリットをスクロールしても、他のスプリットは動きません。次の図のようになります。

中央のスプリットに水平スクロールバーがあることがわかります。HorizontalScrollGroup プロパティが2であるのは中央のスプリットだけなので、このスクロールバーは、中央のスプリットだけに作用します。下のスプリットにある水平スクロールバーは、下と上のスプリットだけを制御するようになります。中央のスプリットには影響を及ぼしません。

この機能は、2つの独立したスプリットグループを作成する場合によく使用されます。これにより、各スプリットをスクロールして異なる行セットを表示し、異なるレコードのフィールド値同士を比較できます。

関連トピック