作成日: 2022/06/22 最終更新日: 2022/06/22
文書種別
使用方法
詳細
2つのグリッドにおいて、一方のスクロールバーの操作で他方のスクロールを同期させるには、それぞれのAfterScrollイベントで他方のグリッドのTopRowまたはScrollPositionプロパティを指定します。
以下のコードを使用すると、C1FlexGrid1の縦スクロールバーまたは横スクロールバーの操作により、C1FlexGrid2が同期してスクロールされます。
また、逆にC1FlexGrid2の操作にC1FlexGrid1が同期します。

◎サンプルコード(VB)
以下のコードを使用すると、C1FlexGrid1の縦スクロールバーまたは横スクロールバーの操作により、C1FlexGrid2が同期してスクロールされます。
また、逆にC1FlexGrid2の操作にC1FlexGrid1が同期します。

◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For i As Integer = 1 To C1FlexGrid1.Rows.Count - 1
C1FlexGrid1(i, 0) = $"{i}"
C1FlexGrid2(i, 0) = $"{i}"
Next
For j As Integer = 1 To C1FlexGrid1.Cols.Count - 1
C1FlexGrid1(0, j) = Convert.ToChar(64 + j).ToString
C1FlexGrid2(0, j) = Convert.ToChar(64 + j).ToString
Next
End Sub
Private Sub C1FlexGrid1_AfterScroll(sender As Object, e As RangeEventArgs) Handles C1FlexGrid1.AfterScroll
'C1FlexGrid2.TopRow = C1FlexGrid1.TopRow ' 行単位のスクロール
C1FlexGrid2.ScrollPosition = C1FlexGrid1.ScrollPosition ' ピクセル単位のスクロール
End Sub
Private Sub C1FlexGrid2_AfterScroll(sender As Object, e As RangeEventArgs) Handles C1FlexGrid2.AfterScroll
'C1FlexGrid1.TopRow = C1FlexGrid2.TopRow ' 行単位のスクロール
C1FlexGrid1.ScrollPosition = C1FlexGrid2.ScrollPosition ' ピクセル単位のスクロール
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.C1FlexGrid;
namespace prj_C1FlexGrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
for (int i = 1; i < this.c1FlexGrid1.Rows.Count; i++)
{
this.c1FlexGrid1[i, 0] = $"{i}";
this.c1FlexGrid2[i, 0] = $"{i}";
}
for (int j = 1; j < this.c1FlexGrid1.Cols.Count; j++)
{
this.c1FlexGrid1[0, j] = Convert.ToChar(64 + j).ToString();
this.c1FlexGrid2[0, j] = Convert.ToChar(64 + j).ToString();
}
}
private void c1FlexGrid1_AfterScroll(object sender, RangeEventArgs e)
{
//c1FlexGrid2.TopRow = c1FlexGrid1.TopRow; //行単位のスクロール
c1FlexGrid2.ScrollPosition = c1FlexGrid1.ScrollPosition; //ピクセル単位のスクロール
}
private void c1FlexGrid2_AfterScroll(object sender, RangeEventArgs e)
{
//c1FlexGrid1.TopRow = c1FlexGrid2.TopRow; //行単位のスクロール
c1FlexGrid1.ScrollPosition = c1FlexGrid2.ScrollPosition; //ピクセル単位のスクロール
}
}
}