作成日: 2025/06/02 最終更新日: 2025/08/27
文書種別
不具合
状況
修正済み
詳細
FpSpread クラスの TopChange イベントと SetViewportTopRow メソッドを使用して、複数の SPREAD コントロール間で垂直スクロールを同期する実装を行っています。
しかし、シートの行数が 0 の場合に TopChange イベント内で SetViewportTopRow メソッドを呼び出すと、以下の例外が発生します。
しかし、シートの行数が 0 の場合に TopChange イベント内で SetViewportTopRow メソッドを呼び出すと、以下の例外が発生します。
| Process is terminated due to StackOverflowException.型 'System.StackOverflowException' のハンドルされていない例外が System.Windows.Forms.dll で発生しました |
回避方法
Service Pack 3(v17.0.4804.2022/v17.3.0)で修正済み。
Service Pack 3を適用せずに対処する方法としては、TopChangeイベントのe.NewTopが0より小さい値の場合には、それ以降の処理を行わない方法が考えられます。
■サンプルコード(VB.NET)
Private Sub FpSpread1_TopChange(sender As Object, e As TopChangeEventArgs)
Handles FpSpread1.TopChange
If e.NewTop < 0 Then
Return
End If
FpSpread2.SetViewportTopRow(0, e.NewTop)
End Sub
Private Sub FpSpread2_TopChange(sender As Object, e As TopChangeEventArgs)
Handles FpSpread2.TopChange
If e.NewTop < 0 Then
Return
End If
FpSpread1.SetViewportTopRow(0, e.NewTop)
End Sub