VSTO CommandBarButton 单击修饰符
VSTO CommandBarButton click modifier
我使用 VSTO、CommandBarPopup 和 CommandBarButton 在 Outlook 中创建了一个工具栏菜单层次结构。我在 CommandBarButton 上设置了一个 Click 处理程序,一切正常,但我希望能够在单击处理程序中执行不同的操作,具体取决于用户是右键单击菜单,还是 shift-left-clicked 或其他(例如,在自动撰写模板回复时包含或不包含原始消息)。
如何检测用户单击了哪个鼠标按钮,或者用户单击时是否按下了 shift、alt 或 ctrl 键?
在事件处理程序中,您可以使用 Keyboard.GetKeyStates 方法获取指定键的键状态集。
// Uses the Keyboard.GetKeyStates to determine if a key is down.
// A bitwise AND operation is used in the comparison.
if ((Keyboard.GetKeyStates(Key.LeftShift) & KeyStates.Down) > 0)
{
// the left shift is pressed now
}
CommandBars
已在 Office 2010 中弃用。您需要使用 Fluent UI 在加载项中创建自定义 UI。在 VSTO 中有两种主要方式来创建自定义 UI:
- Walkthrough: Create a custom tab by using the Ribbon Designer
- Walkthrough: Create a custom tab by using Ribbon XML
上下文菜单也是使用 Fluent UI 自定义的。有关详细信息,请参阅 Extending the User Interface in Outlook 2010。
Fluent UI 将在以下系列文章中进行深入介绍:
我使用 VSTO、CommandBarPopup 和 CommandBarButton 在 Outlook 中创建了一个工具栏菜单层次结构。我在 CommandBarButton 上设置了一个 Click 处理程序,一切正常,但我希望能够在单击处理程序中执行不同的操作,具体取决于用户是右键单击菜单,还是 shift-left-clicked 或其他(例如,在自动撰写模板回复时包含或不包含原始消息)。
如何检测用户单击了哪个鼠标按钮,或者用户单击时是否按下了 shift、alt 或 ctrl 键?
在事件处理程序中,您可以使用 Keyboard.GetKeyStates 方法获取指定键的键状态集。
// Uses the Keyboard.GetKeyStates to determine if a key is down.
// A bitwise AND operation is used in the comparison.
if ((Keyboard.GetKeyStates(Key.LeftShift) & KeyStates.Down) > 0)
{
// the left shift is pressed now
}
CommandBars
已在 Office 2010 中弃用。您需要使用 Fluent UI 在加载项中创建自定义 UI。在 VSTO 中有两种主要方式来创建自定义 UI:
- Walkthrough: Create a custom tab by using the Ribbon Designer
- Walkthrough: Create a custom tab by using Ribbon XML
上下文菜单也是使用 Fluent UI 自定义的。有关详细信息,请参阅 Extending the User Interface in Outlook 2010。
Fluent UI 将在以下系列文章中进行深入介绍: