GcSpreadSheet自定义Tab键选择

Posted xiao贝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GcSpreadSheet自定义Tab键选择相关的知识,希望对你有一定的参考价值。

  最开始的时候需要在GcSpreadSheet中按Tab在需要输入的cell中切换,在模板中定义Tab的切换规则;后来又有一个新的要求,因为在使用的时候会出现数据不平的情况,这个时候需要在标记中的不平数据中切换,如果仍然用Tab键操作的话,就需要禁用原有的在所有输入cell中切换,添加一个新的规则,然后在平完数据之后又需要更换Tab的规则,这时候就需要删除了在不平数据中切换规则,重新添加原规则。记录下来防止下次忘记了!

private KeyValuePair<KeyStroke, SpreadAction> loadTabKey =new KeyValuePair<KeyStroke,SpreadAction>();// 备份的Tab按钮

  删除模板中定义的Tab键规则

private void RemoveKeyTab()
{
  Dictionary<GrapeCity.Windows.SpreadSheet.UI.KeyStroke, GrapeCity.Windows.SpreadSheet.UI.SpreadAction> keyMap = gcSpreadSheet1.View.KeyMap;
  var tabKey = keyMap.First(k => k.Key.KeyCode == Key.Tab);// 从KeyMap中找到Tab键
  loadTabKey=tabKey;// 在删除之前先备份下
  keyMap.Remove(tabKey.Key);// 删除Tab键
}

  将删除的Key键规则添加进集合

 private void AddKeyTab()
 {
   Dictionary<GrapeCity.Windows.SpreadSheet.UI.KeyStroke, GrapeCity.Windows.SpreadSheet.UI.SpreadAction> keyMap = gcSpreadSheet1.View.KeyMap;
   var tabKey = keyMap.First(k => k.Key.KeyCode == Key.Tab);// 从KeyMap中找到Tab键
   keyMap.Remove(tabKey.Key);// 删除Tab键
   keyMap.Add(loadTabKey.Key, loadTabKey.Value);// 重新添加Tab键,使用备份的Tab键功能
 }

  重新注册Tab键,使用这个之后会导致按Tab之后从单元格一个一个切换,小心跟原来的Tab功能错乱(比如刚开始的时候在模板中定义按Tab只在需要输入的Cell中切换,这个时候如果使用这个重新注册的Tab就会在所有cell中切换,模板中定义的就不能用了)

private void AddNewKeyTab
{
    keyMap.Add(new GrapeCity.Windows.SpreadSheet.UI.KeyStroke(Key.Tab, ModifierKeys.None), new GrapeCity.Windows.SpreadSheet.UI.SpreadAction(GrapeCity.Windows.SpreadSheet.UI.SpreadActions.NavigationNext));
}

  从一个cell跳转到另一个cell

int rowindex=0,columnindex=0;
gcSpreadSheet1.ActiveSheet.SetActiveCell(rowindex, columnindex);

 

以上是关于GcSpreadSheet自定义Tab键选择的主要内容,如果未能解决你的问题,请参考以下文章

自定义linux命令参数补全以提高工作效率

VSCode 如何操作用户自定义代码片段(快捷键)

自定义组件和标签顺序

Linux中Tab键命令功能及用法

Linux中Tab键命令功能及用法

linux下的tab键自动补齐是怎么实现的