You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用查看器画布中的Ctrl+左键单击功能

禁用查看器中Ctrl+左键的矩形框选功能

要完全禁用按住Ctrl键左键单击及矩形框选(包括光标变为十字形)的功能,仅重写handleSingleClick方法是不够的——因为矩形框选还涉及鼠标按下、拖动等后续事件,需要同时拦截多个相关的事件处理逻辑:

完整的事件重写方案

扩展查看器的EventEmitter,同时重写以下几个关键方法:

public handleSingleClick(evt: MouseEvent, btn: number): boolean {
    // 拦截Ctrl或Shift+左键单击操作
    if ((evt.ctrlKey || evt.shiftKey) && btn === 0) {
        return true; // 返回true表示事件已处理,终止默认逻辑执行
    }
    return false;
}

public handleMouseDown(evt: MouseEvent, btn: number): boolean {
    // 拦截Ctrl+左键按下动作,阻止框选流程启动
    if (evt.ctrlKey && btn === 0) {
        return true;
    }
    return false;
}

public handleBoxSelection(
    box: Box3,
    selectionMethod?: SelectionMethod,
    domEvent?: Event
): boolean {
    // 直接拦截所有由Ctrl键触发的框选操作
    if (domEvent && (domEvent as MouseEvent).ctrlKey) {
        return true;
    }
    return false;
}

补充说明

  • 返回true是告知查看器:该事件已被自定义处理,无需执行默认的框选及光标切换逻辑
  • 若仍存在光标异常切换的情况,可通过CSS强制锁定光标样式:
.adsk-viewing-viewer canvas {
    cursor: default !important;
}

内容的提问来源于stack exchange,提问作者arkkuba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:47:48