フィルタリング後にMoveToPreviousRowWithDataおよびMoveToNextRowWithDataが動作しない
対象製品
SPREAD for Windows Forms 7.0J
状況
修正済み
詳細
フィルタリング後に入力マップで設定したMoveToPreviousRowWithDataおよびMoveToNextRowWithDataが動作しません。
【手順】
1.新規フォームにSPREADを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.[Ctrl + down]キーを押下します
--最終セルに移動します
4.[Ctrl + up]キーを押下します
--先頭セルに移動します
5.A列を「1」でフィルタリングします
6.[Ctrl + up]キーと[Ctrl + down]キーを押下します
--アクティブセルが移動しません
【サンプルコード】
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
' 入力マップの設定
Dim im As FarPoint.Win.Spread.InputMap
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Up, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToPreviousRowWithData)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Down, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextRowWithData)
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Up, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToPreviousRowWithData)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Down, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextRowWithData)
' フィルタの設定
FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu
FpSpread1.ActiveSheet.SetColumnAllowFilter(0, True)
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.SetValue(i, 0, i Mod 5)
FpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i))
Next
End Sub
【手順】
1.新規フォームにSPREADを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.[Ctrl + down]キーを押下します
--最終セルに移動します
4.[Ctrl + up]キーを押下します
--先頭セルに移動します
5.A列を「1」でフィルタリングします
6.[Ctrl + up]キーと[Ctrl + down]キーを押下します
--アクティブセルが移動しません
【サンプルコード】
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
' 入力マップの設定
Dim im As FarPoint.Win.Spread.InputMap
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Up, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToPreviousRowWithData)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Down, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextRowWithData)
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Up, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToPreviousRowWithData)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Down, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextRowWithData)
' フィルタの設定
FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.EnhancedContextMenu
FpSpread1.ActiveSheet.SetColumnAllowFilter(0, True)
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.SetValue(i, 0, i Mod 5)
FpSpread1.ActiveSheet.SetValue(i, 1, String.Format("B{0}", i))
Next
End Sub
回避方法
Service Pack 6(v7.0.2019.2008)で修正済み。