ShowCellメソッドで非表示列内のセルを表示させるとスクロールバーのつまみが正しい位置へ移動しない

文書番号 : 37598     文書種別 : 不具合     登録日 : 2014/10/03     最終更新日 : 2014/12/15
文書を印刷する
対象製品
SPREAD for Windows Forms 7.0J
状況
修正済み
詳細
ShowCellメソッドで非表示列内のセルを表示させるとスクロールバーのつまみが正しい位置へ移動しません。

【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.水平スクロールバーのつまみを右端に移動します
4.ボタンをクリックします
   --C列が表示されますが、スクロールバーのつまみの位置は右端のまま移動しません

【サンプルコード】
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    FpSpread1.ActiveSheet.FrozenColumnCount = 1
    FpSpread1.ActiveSheet.Columns(1).Visible = False
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim col As Integer = FpSpread1.ActiveSheet.FrozenColumnCount

    FpSpread1.ShowCell(0, 0, 0, col, FarPoint.Win.Spread.VerticalPosition.Nearest, FarPoint.Win.Spread.HorizontalPosition.Nearest)
  End Sub
回避方法
Service Pack 4(v7.0.2016.2008)で修正済み。
Service Pack 4(v7.0.2016.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

ShowCellメソッドで非表示ではないセルを指定します。

【サンプルコード】
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim col As Integer = FpSpread1.ActiveSheet.FrozenColumnCount

    ' 回避策
    While col < FpSpread1.ActiveSheet.ColumnCount - FpSpread1.ActiveSheet.FrozenTrailingColumnCount AndAlso Not FpSpread1.ActiveSheet.Columns(col).Visible
      col += 1
    End While

    FpSpread1.ShowCell(0, 0, 0, col, FarPoint.Win.Spread.VerticalPosition.Nearest, FarPoint.Win.Spread.HorizontalPosition.Nearest)
  End Sub