作成日: 2019/02/05 最終更新日: 2019/02/05
文書種別
不具合
状況
回避方法あり
詳細
C1FlexGridにて、グリッドの右端までスクロールされている状態で、Cols.Countプロパティを1減少させるなどして最終列が削除されたとき、AfterScrollイベントが発生しません。
回避方法
列を削除した際に、明示的にAfterScrollイベントを呼び出します。
◎サンプルコード(VB)
◎サンプルコード(C#)
◎サンプルコード(VB)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cr1 As C1.Win.C1FlexGrid.CellRange
cr1 = C1FlexGrid1.GetCellRange(C1FlexGrid1.TopRow, C1FlexGrid1.LeftCol, C1FlexGrid1.BottomRow, C1FlexGrid1.RightCol)
'最終列を削除
C1FlexGrid1.Cols.Count = C1FlexGrid1.Cols.Count - 1
Dim cr2 As C1.Win.C1FlexGrid.CellRange
cr2 = C1FlexGrid1.GetCellRange(C1FlexGrid1.TopRow, C1FlexGrid1.LeftCol, C1FlexGrid1.BottomRow, C1FlexGrid1.RightCol)
Dim re As C1.Win.C1FlexGrid.RangeEventArgs = New C1.Win.C1FlexGrid.RangeEventArgs(cr1, cr2)
C1FlexGrid1_AfterScroll(C1FlexGrid1, re)
End Sub
Private Sub C1FlexGrid1_AfterScroll(sender As Object, e As C1.Win.C1FlexGrid.RangeEventArgs) Handles C1FlexGrid1.AfterScroll
Debug.Print("AfterScroll")
End Sub
Dim cr1 As C1.Win.C1FlexGrid.CellRange
cr1 = C1FlexGrid1.GetCellRange(C1FlexGrid1.TopRow, C1FlexGrid1.LeftCol, C1FlexGrid1.BottomRow, C1FlexGrid1.RightCol)
'最終列を削除
C1FlexGrid1.Cols.Count = C1FlexGrid1.Cols.Count - 1
Dim cr2 As C1.Win.C1FlexGrid.CellRange
cr2 = C1FlexGrid1.GetCellRange(C1FlexGrid1.TopRow, C1FlexGrid1.LeftCol, C1FlexGrid1.BottomRow, C1FlexGrid1.RightCol)
Dim re As C1.Win.C1FlexGrid.RangeEventArgs = New C1.Win.C1FlexGrid.RangeEventArgs(cr1, cr2)
C1FlexGrid1_AfterScroll(C1FlexGrid1, re)
End Sub
Private Sub C1FlexGrid1_AfterScroll(sender As Object, e As C1.Win.C1FlexGrid.RangeEventArgs) Handles C1FlexGrid1.AfterScroll
Debug.Print("AfterScroll")
End Sub
◎サンプルコード(C#)
private void button1_Click(object sender, EventArgs e)
{
C1.Win.C1FlexGrid.CellRange cr1;
cr1 = c1FlexGrid1.GetCellRange(c1FlexGrid1.TopRow, c1FlexGrid1.LeftCol, c1FlexGrid1.BottomRow, c1FlexGrid1.RightCol);
// 最終列を削除
c1FlexGrid1.Cols.Count = (c1FlexGrid1.Cols.Count - 1);
C1.Win.C1FlexGrid.CellRange cr2;
cr2 = c1FlexGrid1.GetCellRange(c1FlexGrid1.TopRow, c1FlexGrid1.LeftCol, c1FlexGrid1.BottomRow, c1FlexGrid1.RightCol);
C1.Win.C1FlexGrid.RangeEventArgs re = new C1.Win.C1FlexGrid.RangeEventArgs(cr1, cr2);
c1FlexGrid1_AfterScroll(c1FlexGrid1, re);
}
private void c1FlexGrid1_AfterScroll(object sender, C1.Win.C1FlexGrid.RangeEventArgs e)
{
System.Diagnostics.Debug.WriteLine("AfterScroll");
}
{
C1.Win.C1FlexGrid.CellRange cr1;
cr1 = c1FlexGrid1.GetCellRange(c1FlexGrid1.TopRow, c1FlexGrid1.LeftCol, c1FlexGrid1.BottomRow, c1FlexGrid1.RightCol);
// 最終列を削除
c1FlexGrid1.Cols.Count = (c1FlexGrid1.Cols.Count - 1);
C1.Win.C1FlexGrid.CellRange cr2;
cr2 = c1FlexGrid1.GetCellRange(c1FlexGrid1.TopRow, c1FlexGrid1.LeftCol, c1FlexGrid1.BottomRow, c1FlexGrid1.RightCol);
C1.Win.C1FlexGrid.RangeEventArgs re = new C1.Win.C1FlexGrid.RangeEventArgs(cr1, cr2);
c1FlexGrid1_AfterScroll(c1FlexGrid1, re);
}
private void c1FlexGrid1_AfterScroll(object sender, C1.Win.C1FlexGrid.RangeEventArgs e)
{
System.Diagnostics.Debug.WriteLine("AfterScroll");
}
旧文書番号
83619