• 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);
  • 相关阅读:
    orm操作
    模板语言
    路由
    newlib中printf库函数的实现
    调试问题记录
    GCC部分编译选项解析
    Lauterbach TRACE32使用技巧记录
    ARM32 页表映射过程
    TTBR0与TTBR1
    Camera Sensor基础知识
  • 原文地址:https://www.cnblogs.com/zbfamily/p/5826693.html
Copyright © 2020-2023  润新知