问题描述:Spread有很多内置快捷键行为,如何自定义快捷键对应的行为。
问题解答:可以通过继承 Action 类,重载其PerformAction方法自定义键盘行为。
关键代码:
自定义SpreadAction
///<summary> ///默认情况下 Ctrl + Home 即选择Cell[0,0],自定义动作实现选择 Cell[0,1] ///</summary> public classNewControlHomeAction : FarPoint.Win.Spread.Action { public overridevoid PerformAction(object source) { if (source isSpreadView) { SpreadView SpreadView = (SpreadView)source; SpreadView.Sheets[SpreadView.ActiveSheetIndex].SetActiveCell(0, 1); SpreadView.ShowActiveCell(VerticalPosition.Top, HorizontalPosition.Left); } } } |
添加自定义SpreadAction,并且设置给Ctrl+Home快捷键
fpSpread1.ActiveSheet.Columns[0].CanFocus = false; InputMap im = fpSpread1.GetInputMap(InputMapMode.WhenFocused); ActionMap am = fpSpread1.GetActionMap(); im.Put(newKeystroke(Keys.Home, Keys.Control), "NewControlHomeAction"); am.Put("NewControlHomeAction", newNewControlHomeAction()); |
示例下载:点击下载
更多信息:请参考Spread for WinForms V7.0 API中文文档 相关章节。