作成日: 2019/04/09 最終更新日: 2019/04/17
文書種別
不具合
状況
修正済み
詳細
■事象
行をすべて削除した後に、行を再追加した時、アクティブセルの位置(水平方向)が削除前と同じになります。
◎サンプルコード(VB)
■再現手順
1. フォーム上にSPREADコントロールとボタンを1つずつ配置し、上記のコードを記述します。
2. アプリケーションを実行します。
3. 任意のセルを選択します(アクティブセルを変更します)
4. ボタンをクリックします。
→手順3.で選択したセルと同じ列の先頭行のセルがアクティブセルになります。
行をすべて削除した後に、行を再追加した時、アクティブセルの位置(水平方向)が削除前と同じになります。
◎サンプルコード(VB)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 行の削除
FpSpread1_Sheet1.RowCount = 0
' データの作成
Dim dt As New DataTable("Test")
For i As Integer = 0 To 9
dt.Columns.Add(String.Format("列{0}", i + 1), GetType(String))
Next
For i As Integer = 0 To 9
Dim dr As DataRow = dt.NewRow()
For j As Integer = 0 To dt.Columns.Count - 1
dr(j) = String.Format("R{0}C{1}", i, j)
Next
dt.Rows.Add(dr)
Next
dt.AcceptChanges()
FpSpread1.ActiveSheet.DataAutoSizeColumns = False
FpSpread1.ActiveSheet.DataSource = dt
' アクティブセルの表示
FpSpread1.ShowActiveCell(FarPoint.Win.Spread.VerticalPosition.Nearest, FarPoint.Win.Spread.HorizontalPosition.Nearest)
End Sub
' 行の削除
FpSpread1_Sheet1.RowCount = 0
' データの作成
Dim dt As New DataTable("Test")
For i As Integer = 0 To 9
dt.Columns.Add(String.Format("列{0}", i + 1), GetType(String))
Next
For i As Integer = 0 To 9
Dim dr As DataRow = dt.NewRow()
For j As Integer = 0 To dt.Columns.Count - 1
dr(j) = String.Format("R{0}C{1}", i, j)
Next
dt.Rows.Add(dr)
Next
dt.AcceptChanges()
FpSpread1.ActiveSheet.DataAutoSizeColumns = False
FpSpread1.ActiveSheet.DataSource = dt
' アクティブセルの表示
FpSpread1.ShowActiveCell(FarPoint.Win.Spread.VerticalPosition.Nearest, FarPoint.Win.Spread.HorizontalPosition.Nearest)
End Sub
■再現手順
1. フォーム上にSPREADコントロールとボタンを1つずつ配置し、上記のコードを記述します。
2. アプリケーションを実行します。
3. 任意のセルを選択します(アクティブセルを変更します)
4. ボタンをクリックします。
→手順3.で選択したセルと同じ列の先頭行のセルがアクティブセルになります。
回避方法
Service Pack 1(v12.0.4501.2012)で修正済み。
旧文書番号
83840