Excel验证列表下拉箭头点击事件检测

问题描述 投票:0回答:1

我想在用户显示 Excel 验证列表时捕获事件。我知道可以通过单击包含验证列表的单元格旁边的下拉箭头或当用户右键单击单元格并从上下文菜单中选择选项来显示验证列表。两种场景的处理都会很棒,但“箭头场景”对我来说也很棒。

在 Excel 风格中,它的命名类似于:

BeforeDropDownValidationListShow(ByRef Cancel As Boolean)

在完美场景中:用户单击包含数据验证(列表类型)的单元格旁边的小验证列表箭头,并且:

  • 内置列表不显示
  • 只是我的操作(例如 MessageBox 被提升)。

它应该可以在 Windows 上运行。

我知道该事件不存在,但我想创建/模拟该行为。我认为我必须使用 MouseHooks 之类的东西,并且可能检测用户相对于 Excel 工作簿中的 ActiveCell 单击的位置(屏幕坐标)。但也许有一些聪明且更简单的方法。

我是 VBA 程序员,也是 C# 和 VSTO 的初学者,我知道这项任务可能相当困难,但也是可能的。请给我一些想法,我会尝试自己编写代码。预先感谢!

c# excel vsto office-addins excel-addins
1个回答
0
投票

您可以尝试通过重新调整控件的用途(用您自己的操作替换内置操作)来自定义上下文菜单。 Excel 与其他 Office 应用程序一样,使用 Fluent UI(又名 Ribbon UI)来自定义 UI。在暂时重新调整 Office Fluent 功能区上的命令一文中了解有关重新调整内置控件用途的更多信息。

Fluent UI(又名 Ribbon UI)在以下系列文章中进行了深入描述:

有关功能区控件 ID,请参阅 Office 2016 帮助文件:Office Fluent 用户界面控件标识符

© www.soinside.com 2019 - 2024. All rights reserved.