Skip to content

Repository files navigation

希沃白板插件 - 禁用授课模式表格排序

禁用授课模式表格排序(EasiPluginDisableTableSort)是希沃白板的原生插件,用于移除授课模式下表格元素的排序功能,避免表格排序意外影响课堂。

✨ 特性

  • 授课模式(Display):表格元素不再具备排序交互——
    • 点击未设遮罩的表头行单元格不再触发数据重排(SortManager.SortAuto);
    • 悬停表格不再出现升序/降序排序箭头(SortController)。
  • 备课模式(Edit):不受任何影响,单元格选中、编辑等操作保持正常。
  • 单元格遮罩(备课设置遮罩、授课点击揭开)不受影响:拦截条件精确排除了遮罩单元格(IsErasable),遮罩单元格的点击完全放行。

🛠️ 工作原理

排序功能的宿主实现位于 Cvte.Paint.Table.dll,包含两条触发路径:

路径 宿主调用链
单元格点击 CellOperation.CellService_CellClickSortManager.SortAutoSort → 数据重排
悬停显示箭头 TableElement.TableElement_OnMouseMoveSortManager.ShowSortCtroller → 点击箭头 → Sort

插件通过两条公开 API 组合将其移除:

  1. 精准阻断排序点击:用 EventManager.RegisterClassHandlerTableCell.CellClickedEvent 注册类处理器,仅在授课模式下、单元格未设置遮罩(IsErasable == false)且位于表头行(Row == 1)时将点击置为 Handled = true,使宿主的点击处理器(CellService_CellClick)不再执行,从而取消 SortAuto 数据重排。宿主中遮罩揭开(IsErasable 分支)与排序(表头行分支)位于同一处理器内,因此拦截条件必须精确排除遮罩单元格,否则授课模式将无法点击揭开遮罩;CellClickedEvent 在宿主中仅有 CellService_CellClick 一个消费者,对无表头(ContainHeader == false)表格的表头行点击置 Handled 无任何副作用;
  2. 隐藏排序箭头:通过 ITableElement.SortCtrl 获取排序箭头控件 SortController,置为 Collapsed 并监听其可见性变化持续抑制,防止悬停显示的箭头被点击再次触发排序。

两条路径相互独立,缺一不可:仅隐藏箭头无法阻止单元格点击直接重排;仅拦截点击无法阻止悬停箭头触发的排序。

🔌 构建

dotnet build -c Release

产物位于 bin/Release/

产物 说明
禁用授课模式表格排序.<版本>.exe 独立安装包,可直接分发,双击安装
禁用授课模式表格排序.<版本>.zip 插件文件包(安全软件报备 / 人工检查用)
DisableTableSortPlugin.<版本>.enp 希沃白板应用中心托管包

未显式指定版本时默认 1.0.0;可在 .csproj 中通过 <Version> 覆盖。

环境要求

要求
系统 Windows 10 及以上
宿主 希沃白板 5(本仓库在 5.2.4.9855 上验证)
SDK .NET 6 SDK(dotnetCampus.EasiPlugin.Sdk 2.1.1-alpha.3,从 NuGet 还原)
IDE Visual Studio 2022 17.5.2+(或 .NET CLI)

构建前需先安装希沃白板并至少启动一次:插件 SDK 构建时通过注册表 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Seewo\EasiNote5 定位宿主程序集并引用。

📚 说明

本 README 文档由 AI 辅助生成。如有问题,请提交 Issue 或与我联系

About

希沃白板插件 - 禁用授课模式表格排序

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages