Pau*_*ner 15 excel vsto ms-office
我正在尝试在Excel加载项中添加自定义任务窗格,该加载项旨在与"数据透视表"窗格类似地工作.
目的是当选择表时,自定义窗格应该出现并且应该消失.为此,我创建了一个自定义任务窗格:
this._taskPane = Globals.AddIn.CustomTaskPanes.Add(
new TableTaskPane(),
"FooPane");
this._taskPane.DockPositionRestrict
= MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoHorizontal;
Run Code Online (Sandbox Code Playgroud)
选择表格后,窗格将变为可见,取消选择后,窗格将被隐藏:
ListObject table = AddTable(); // Creates the table and populates with data.
table.Selected += range => this._taskPane.Visible = true;
table.Deselected += range => this._taskPane.Visible = false;
Run Code Online (Sandbox Code Playgroud)
这实现了显示和隐藏窗格的效果,但遗憾的是在UI中产生一些延迟,其中当任务窗格在可见性状态之间转换时,光标在单元之间"反弹".
这似乎是因为Visible
属性的setter 阻塞,直到任务窗格完成转换.在Excel 2013中,它从窗口侧面滑出,大约需要500毫秒.
我看不到任何改变这种行为的方法 - 我已经尝试在STA线程上安排属性设置,但它会导致相同的阻塞.我很乐意更改任务窗格,以便它在没有转换的情况下立即显示(如数据透视表窗格),但我也看不到任何可能发生的事情.
我做错了吗?有没有办法通过直接COM或其他一些隐藏的行为来解决这个问题?
您可以通过关闭此处找到的愚蠢的 Windows 动画功能来实现此目的(甚至更多性能改进):控制面板 -> 系统和安全 -> 系统 -> 高级设置 -> 性能设置 -> 视觉效果。
在这种特殊情况下,我相信您需要关闭此功能:
但这些对于加快速度也很有用:
归档时间: |
|
查看次数: |
685 次 |
最近记录: |