请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

haiger

注册会员

4

主题

14

帖子

40

积分

注册会员

积分
40
最新发帖
haiger
注册会员   /  发表于:2024-2-1 15:16  /   查看:278  /  回复:7
1金币
通过自定义对话框实现了查找功能,但是无法直接唤起,需要点击单元格后(这里我理解的是要先获取光标位置?)才能唤起对话框,请问有办法实现初始化sheet后鼠标不做任何操作直接按下Ctrl+F打开对话框吗?

尝试过以下方法均无效(ps:前端用的Vue):

1,设置默认焦点
this.activeSheet.focus()

2,设置默认单元格
sheet.setActiveCell(1,1);



最佳答案

查看完整内容

您好,参考以下代码试试:

7 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-2-1 15:16:42
来自 6#
您好,参考以下代码试试:

  1. let command = {
  2.   canUndo: false,
  3.   execute: function (context, options, isUndo) {
  4.     alert("test")
  5.     //在这里打开自定对话框
  6.     return true;
  7.   }
  8. };

  9. spread.commandManager().register('test', command, 'F'.charCodeAt(0), true, false, false, false);

  10. document.addEventListener('keydown', function (event) {
  11.   if (event.ctrlKey && event.key === 'f') {
  12.     event.preventDefault();
  13.     spread.commandManager().getCommand("test").execute();
  14.   }
  15. });
复制代码
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-2-1 15:20:35
2#
您好,请参考如下代码:

GC.Spread.Sheets.Designer.getCommand(GC.Spread.Sheets.Designer.CommandNames.FindDialogFind).execute(designer);

image.png162633055.png
回复 使用道具 举报
haiger
注册会员   /  发表于:2024-2-1 15:26:35
3#
Joestar.Xu 发表于 2024-2-1 15:20
您好,请参考如下代码:

GC.Spread.Sheets.Designer.getCommand(GC.Spread.Sheets.Designer.CommandName ...

我这边没有用designer,是这样写的,加载sheet后,按下ctrl+f,‘test'没有弹出,而是执行了浏览器的查找
this.workbookLst[0].commandManager().register("XXXX", {
        canUndo: false,
        execute: function (context, options, isUndo) {
          alert("test")
        //在这里打开自定对话框
          return true;
        }
      });
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-2-1 15:38:37
4#
也就是说您这边是自己自定义了一个查找对话框吗?

您这边有没有为快捷键Crtl+F绑定命令呢?

如果没有的话,可以将您说的Command绑定到Ctrl+F这个快捷键上,绑定的代码请参考:https://demo.grapecity.com.cn/sp ... t-actions#timestamp
回复 使用道具 举报
haiger
注册会员   /  发表于:2024-2-1 15:58:30
5#
Joestar.Xu 发表于 2024-2-1 15:38
也就是说您这边是自己自定义了一个查找对话框吗?

您这边有没有为快捷键Crtl+F绑定命令呢?

绑定了的,鼠标点一下单元格按ctrl+f就可以打开对话框了,不点单元格就没反应
回复 使用道具 举报
haiger
注册会员   /  发表于:2024-2-1 17:57:20
7#
Joestar.Xu 发表于 2024-2-1 16:58
您好,参考以下代码试试:

OK,可以了
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-2-2 08:52:31
8#
好的,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部