MESCIUS MultiRow for Windows Forms 12.0J
スクロール

GcMultiRowコントロールでは、スクロールバーの表示と非表示、スクロールの単位、スクロール量、スクロール時の描画、スクロールチップの表示を設定できます。
スクロールバーの表示と非表示
GcMultiRow.ScrollBarsプロパティを使用すると、スクロールバーの表示と非表示を設定できます。
次のコードは、垂直スクロールバーだけを表示します。

GcMultiRow1.ScrollBars = ScrollBars.Vertical
gcMultiRow1.ScrollBars = ScrollBars.Vertical;

グリッドが画面内にすべて表示されている場合など、不要なスクロールバーを一時的に非表示にすることができます。垂直スクロールバーはGcMultiRow.HorizontalScrollBarModeプロパティ、水平スクロールバーは GcMultiRow.VerticalScrollBarModeプロパティを使用し、それぞれのプロパティにAutomaticに設定すると、GcMultiRowコントロールは必要な場合のみスクロールバーを表示します。

GcMultiRow1.HorizontalScrollBarMode = GrapeCity.Win.MultiRow.ScrollBarMode.Automatic
GcMultiRow1.VerticalScrollBarMode = GrapeCity.Win.MultiRow.ScrollBarMode.Automatic
gcMultiRow1.HorizontalScrollBarMode = GrapeCity.Win.MultiRow.ScrollBarMode.Automatic;
gcMultiRow1.VerticalScrollBarMode = GrapeCity.Win.MultiRow.ScrollBarMode.Automatic;

  • スクロールバーを非表示にした場合でも、グリッド内のデータがグリッドの表示範囲を超えていれば、ユーザーはマウスのドラッグ操作によってグリッドをスクロールできます。
   
スクロール単位の変更
既定の設定では、GcMultiRowコントロールは垂直方向には行単位、水平方向にはピクセル単位でスクロールされます。GcMultiRow.VerticalScrollModeプロパティをPixelに設定すると垂直方向のスクロールがピクセル単位、GcMultiRow.HorizontalScrollModeプロパティをCellに設定すると水平方向のスクロールがセル単位で移動するようになります。

GcMultiRow1.RowCount = 200
GcMultiRow1.VerticalScrollMode = GrapeCity.Win.MultiRow.ScrollMode.Pixel
GcMultiRow1.HorizontalScrollMode = GrapeCity.Win.MultiRow.ScrollMode.Cell
gcMultiRow1.RowCount = 200;
gcMultiRow1.VerticalScrollMode = GrapeCity.Win.MultiRow.ScrollMode.Pixel;
gcMultiRow1.HorizontalScrollMode = GrapeCity.Win.MultiRow.ScrollMode.Cell;
スクロール量の変更
GcMultiRow.VerticalScrollCountプロパティおよびGcMultiRow.HorizontalScrollCountプロパティを使用すると、1回の操作におけるスクロール量を変更できます。この設定により、テンプレートのサイズやレイアウトに合わせてスクロール速度を変更できます。
次のコードは、垂直スクロールにおける1回のスクロール量を10ピクセルに設定します。

GcMultiRow1.RowCount = 200
GcMultiRow1.VerticalScrollMode = GrapeCity.Win.MultiRow.ScrollMode.Pixel
GcMultiRow1.VerticalScrollCount = 10
gcMultiRow1.RowCount = 200;
gcMultiRow1.VerticalScrollMode = GrapeCity.Win.MultiRow.ScrollMode.Pixel;
gcMultiRow1.VerticalScrollCount = 10;

マウスホイールによる垂直スクロール時のスクロール量を変更するには、GcMultiRow.MouseWheelCountプロパティを使用します。

  • マウスのチルト ホイール(左右スクロール)に対応する機能は提供されません。
スクロールバーのドラッグ中のグリッド更新停止
GcMultiRowコントロールの既定の設定では、ユーザーがスクロール操作を行ったとき直ちにグリッドが更新されます。たとえば、ユーザーがスクロールバーをドラッグしたとき、グリッドの内容はスクロールバーの位置に合わせてリアルタイムに更新されます。この動作は高い応答性を実現しますが、データバウンド時、とくに仮想モードの使用時にパフォーマンスに影響を与える場合があります。GcMultiRow.ScrollOnThumbTrackプロパティを使用すると、ドラッグ中はグリッドの更新を停止し、ドラッグが完了した時点でグリッドの更新を再開します。この結果、グリッドとデータ ソースの負荷を軽減できます。

次のコードは、ユーザーが水平スクロールバーを操作したときは直ちにグリッドを更新しますが、垂直スクロールバーを操作した場合はドラッグの完了を待ってグリッドを更新します。

GcMultiRow1.ScrollOnThumbTrack = GrapeCity.Win.MultiRow.ScrollOnThumbTrack.Horizontal
gcMultiRow1.ScrollOnThumbTrack = GrapeCity.Win.MultiRow.ScrollOnThumbTrack.Horizontal;
スクロールチップ
GcMultiRow.ShowScrollTipプロパティを使用すると、スクロール先の行やセルの情報をツールチップに表示できます。このプロパティをBothに設定したとき、垂直スクロールでは行番号、水平スクロールではピクセル位置がスクロールチップに表示されます。
スクロールチップの表示位置は、垂直スクロールバーの場合はGcMultiRow.VerticalScrollTipAlignmentプロパティ、水平スクロールバーの場合はGcMultiRow.HorizontalScrollTipAlignmentプロパティで設定できます。
スクロールチップのテキストはGcMultiRow.ScrollTipTextNeededイベントで設定します。

次のコードは、垂直および水平スクロールバーによるスクロール時に、スクロール先のセルのインデックス番号をツールチップに表示します。

Imports GrapeCity.Win.MultiRow

Private Sub Form1_Load( _
    ByVal sender As System.Object, ByVal e As System.EventArgs _
    ) Handles MyBase.Load
    GcMultiRow1.RowCount = 200
    GcMultiRow1.ShowScrollTip = ScrollBars.Vertical
End Sub

Private Sub GcMultiRow1_ScrollTipTextNeeded( _
    ByVal sender As System.Object, ByVal e As ScrollTipTextNeededEventArgs _
    ) Handles GcMultiRow1.ScrollTipTextNeeded
    If e.Direction = Orientation.Vertical Then
        e.ScrollTipText = e.ScrollRowIndex
    End If
End Sub
using GrapeCity.Win.MultiRow;

private void Form1_Load(object sender, EventArgs e)
{
    gcMultiRow1.RowCount = 200;
    gcMultiRow1.ShowScrollTip = ScrollBars.Vertical;
}

private void gcMultiRow1_ScrollTipTextNeeded(object sender, ScrollTipTextNeededEventArgs e)
{
    if (e.Direction == Orientation.Vertical)
        e.ScrollTipText = e.ScrollRowIndex.ToString();
}
スクロールバーのスタイル
GcMultiRow.ScrollBarStyleプロパティを使用すると、スクロールバーのスタイルを変更できます。詳細は「ビジュアル スタイル」を参照してください。
コードによるセル単位のスクロール
GcMultiRow.FirstDisplayedCellPositionプロパティを使用すると、グリッドの左上に表示するセルを指定できます。

次のコードは、5行目の最初のセルが左上に表示されるよう、グリッドをスクロールします。

GcMultiRow1.RowCount = 10
GcMultiRow1.FirstDisplayedCellPosition = New GrapeCity.Win.MultiRow.CellPosition(4, 0)
gcMultiRow1.RowCount = 10;
gcMultiRow1.FirstDisplayedCellPosition = new GrapeCity.Win.MultiRow.CellPosition(4, 0);
コードによる座標でのスクロール
GcMultiRow.FirstDisplayedLocationプロパティを使用すると、グリッドの左上に表示する座標を指定できます。

GcMultiRow1.RowCount = 10
GcMultiRow1.FirstDisplayedLocation = New Point(200, 100)
gcMultiRow1.RowCount = 10;
gcMultiRow1.FirstDisplayedLocation = new Point(200, 100);
スクロールと常時入力モード
常時入力モードが有効のとき、一般にスクロールの速度は低下します。これは、セルの移動に伴って必ずセルが編集状態に遷移するためです。常時入力モードの詳細は「編集モード」を参照してください。
セル編集中のスクロール
セルの編集中や常時入力モードが有効のときに、マウスホイールのスクロール対象をGcMultiRowコントロールにするには、GcMultiRow.MouseWheelScrollプロパティをOnMultiRowに設定します。 また、スクロールの対象を編集中のセルにするにはOnEditingControlに設定します。

GcMultiRow1.MouseWheelScroll = GrapeCity.Win.MultiRow.MouseWheelScroll.OnMultiRow
gcMultiRow1.MouseWheelScroll = GrapeCity.Win.MultiRow.MouseWheelScroll.OnMultiRow;
   
関連トピック

 

 


© MESCIUS inc. All rights reserved.