找回密码
 立即注册

QQ登录

只需一步,快速开始

[WinForms] 自定义快捷键

roger.wang
社区贡献组   /  发表于:2014-5-16 11:48  /   查看:6269  /  回复:0
问题描述:Spread有很多内置快捷键行为,如何自定义快捷键对应的行为。
问题解答:可以通过继承 Action 类,重载其PerformAction方法自定义键盘行为。
关键代码:

  1. 自定义SpreadAction
  2.     ///<summary>
  3.     ///默认情况下 Ctrl + Home 即选择Cell[0,0],自定义动作实现选择 Cell[0,1]
  4.     ///</summary>
  5. public classNewControlHomeAction : FarPoint.Win.Spread.Action
  6.     {
  7. public overridevoid PerformAction(object source)
  8.         {
  9. if (source isSpreadView)
  10.             {
  11. SpreadView SpreadView = (SpreadView)source;
  12.                 SpreadView.Sheets[SpreadView.ActiveSheetIndex].SetActiveCell(0, 1);
  13.                 SpreadView.ShowActiveCell(VerticalPosition.Top, HorizontalPosition.Left);
  14.             }
  15.         }
  16.     }
复制代码

?
添加自定义SpreadAction,并且设置给Ctrl+Home快捷键

  1.             fpSpread1.ActiveSheet.Columns[0].CanFocus = false;
  2.           InputMap im = fpSpread1.GetInputMap(InputMapMode.WhenFocused);
  3.           ActionMap am = fpSpread1.GetActionMap();
  4.           im.Put(newKeystroke(Keys.Home, Keys.Control), "NewControlHomeAction");
  5.           am.Put("NewControlHomeAction", newNewControlHomeAction());
复制代码


示例下载:点击下载

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部