'宣言 Public Property ScrollPosition As System.Drawing.Point
public System.Drawing.Point ScrollPosition {get; set;}
'宣言 Public Property ScrollPosition As System.Drawing.Point
public System.Drawing.Point ScrollPosition {get; set;}
スクロール位置をピクセル座標で取得または設定するには、 ScrollPositionプロパティを使用します。
次のコードは、2つのグリッド(_flexLeft と _flexRight)を連結し、垂直スクロールを同期させます。水平方向にはグリッドを独立にスクロールできます。
' グリッドを連結します。 fgRight.DataSource = fgLeft fgLeft.ScrollBars = ScrollBars.Horizontal ' 垂直方向のスクロールを同期させます。 ' これは両方のグリッドの AfterScroll イベントを処理します。 Private Sub flex_AfterScroll(sender As Object, _ e As C1.Win.FlexGrid.RangeEventArgs) ' 送信元のグリッド(_flexLeft または _flexRight)を更新します。 Dim fg As C1FlexGrid = CType(sender, C1FlexGrid) fg.Update() ' 送信元のグリッドから新しい垂直位置を取得します。 Dim y As Integer = fg.ScrollPosition.Y ' 新しい垂直位置をもう一方のグリッドに適用します。 If fg.Equals(fgLeft) Then fgRight.ScrollPosition = New Point(fgRight.ScrollPosition.X, y) Else fgLeft.ScrollPosition = New Point(fgLeft.ScrollPosition.X, y) End If End Sub
// グリッドを連結します _flexRight.DataSource = _flexLeft; _flexLeft.ScrollBars = ScrollBars.Horizontal; // 垂直スクロールを同期させます // これは両方のグリッドの AfterScroll イベントを処理します private void flex_AfterScroll(object sender, C1.Win.FlexGrid.RangeEventArgs e) { // 送信元のグリッド(_flexLeft または _flexRight)を更新します C1FlexGrid src = ((C1FlexGrid)sender); src.Update(); // 送信元のグリッドから新しい垂直位置を取得します int y = src.ScrollPosition.Y; // 新しい垂直位置をもう一方のグリッドに適用します if (src.Equals(_flexLeft)) { _flexRight.ScrollPosition = new Point(_flexRight.ScrollPosition.X, y); } else { _flexLeft.ScrollPosition = new Point(_flexLeft.ScrollPosition.X, y); } }