作成日: 2020/06/02 最終更新日: 2021/05/26
文書種別
不具合
状況
修正済み
詳細
AllowAutoFilterプロパティとAllowAutoSortプロパティをTrueに設定しソートとフィルタリングを有効にした状態で、列のソートを実行後にシートをリセットすると以下の例外が発生します。
System.IndexOutOfRangeException: '指定されたインデックスは無効です: 499'
■サンプルコード(VB.NET)
System.IndexOutOfRangeException: '指定されたインデックスは無効です: 499'
■サンプルコード(VB.NET)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの作成
Dim dt As New DataTable("Test")
dt.Columns.Add("ColA", GetType(String))
dt.Columns.Add("ColB", GetType(String))
For i = 0 To 9
dt.Rows.Add($"A{i}", $"B{i}")
Next
dt.AcceptChanges()
' シートの初期化
FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True
FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = True
FpSpread1.ActiveSheet.DataSource = dt
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' シートのリセット
FpSpread1.ActiveSheet.Reset()
End Sub
End Class
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの作成
Dim dt As New DataTable("Test")
dt.Columns.Add("ColA", GetType(String))
dt.Columns.Add("ColB", GetType(String))
For i = 0 To 9
dt.Rows.Add($"A{i}", $"B{i}")
Next
dt.AcceptChanges()
' シートの初期化
FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True
FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = True
FpSpread1.ActiveSheet.DataSource = dt
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' シートのリセット
FpSpread1.ActiveSheet.Reset()
End Sub
End Class
回避方法
Service Pack 4(v11.0.4505.2012)で修正済み。
Service Pack 4を適用せずに対処する方法としては、シートをリセットする前にソートをリセットすることで回避可能です。
■サンプルコード(VB.NET)
■サンプルコード(VB.NET)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 回避策「ソートのリセット」
FpSpread1.ActiveSheet.Models.ResetViewRowIndexes()
' シートのリセット
FpSpread1.ActiveSheet.Reset()
End Sub
' 回避策「ソートのリセット」
FpSpread1.ActiveSheet.Models.ResetViewRowIndexes()
' シートのリセット
FpSpread1.ActiveSheet.Reset()
End Sub
旧文書番号
85665