如果选择下拉项,则执行操作 VSTO Outlook 使用 C# 和 XML
Perform action if drop down item is selected VSTO Outlook using C# and XML
我在 ribbon.xml 文件中创建了一个简单的下拉菜单。该菜单有 4 个项目可供用户选择。我正在使用的 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab id="TabAddIns" label="testing">
<group id="TestSettings" label="Settings">
<dropDown id="trainingDropDown" label="Select Data Set">
<item id="item1" label="lable 1" />
<item id="item2" label="lable 2" />
<item id="item3" label="lable 3" />
<item id="item3" label="lable 4" />
</dropDown>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
如何使用 C# 检查下拉菜单中当前选中的项目?即:
if(item1 == selected)
{
//do stuff
}
我之前使用切换按钮和 "onAction" 在 VSTO 代码中实现了操作,不幸的是我不知道如何使用下拉菜单完成同样的事情。
感谢克里斯为我指明了正确的方向。我能够使用下拉菜单 "onAction" 回调来完成我尝试做的事情。为此,我所要做的就是将 "onAction" 添加到我的 XML 中,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab id="TabAddIns" label="testing">
<group id="TestSettings" label="Settings" onAction = "SelectModel">
<dropDown id="trainingDropDown" label="Select Data Set">
<item id="item1" label="label 1" />
<item id="item2" label="label 2" />
<item id="item3" label="label 3" />
<item id="item3" label="label 4" />
</dropDown>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
从这里开始,我在功能区 class 中创建了一个名为 "SelectModel" 的函数(对应于上面指定的 onAction 名称)。获取项目索引作为参数,我能够根据选择的下拉项目输出不同的消息。
public void SelectModel(Office.IRibbonControl control, string selectedId, int SelectedItemIndex)
{
if (SelectedItemIndex == 0)
{
MessageBox.Show("first item selected");
}
else if (SelectedItemIndex == 1)
{
MessageBox.Show("second item selected");
}
else if(SelectedItemIndex == 2)
{
MessageBox.Show("third item is selected");
}
else if (SelectedItemIndex == 3)
{
MessageBox.Show("fourth item is selected");
}
}
这导致此处显示的输出:
我在 ribbon.xml 文件中创建了一个简单的下拉菜单。该菜单有 4 个项目可供用户选择。我正在使用的 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab id="TabAddIns" label="testing">
<group id="TestSettings" label="Settings">
<dropDown id="trainingDropDown" label="Select Data Set">
<item id="item1" label="lable 1" />
<item id="item2" label="lable 2" />
<item id="item3" label="lable 3" />
<item id="item3" label="lable 4" />
</dropDown>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
如何使用 C# 检查下拉菜单中当前选中的项目?即:
if(item1 == selected)
{
//do stuff
}
我之前使用切换按钮和 "onAction" 在 VSTO 代码中实现了操作,不幸的是我不知道如何使用下拉菜单完成同样的事情。
感谢克里斯为我指明了正确的方向。我能够使用下拉菜单 "onAction" 回调来完成我尝试做的事情。为此,我所要做的就是将 "onAction" 添加到我的 XML 中,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab id="TabAddIns" label="testing">
<group id="TestSettings" label="Settings" onAction = "SelectModel">
<dropDown id="trainingDropDown" label="Select Data Set">
<item id="item1" label="label 1" />
<item id="item2" label="label 2" />
<item id="item3" label="label 3" />
<item id="item3" label="label 4" />
</dropDown>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
从这里开始,我在功能区 class 中创建了一个名为 "SelectModel" 的函数(对应于上面指定的 onAction 名称)。获取项目索引作为参数,我能够根据选择的下拉项目输出不同的消息。
public void SelectModel(Office.IRibbonControl control, string selectedId, int SelectedItemIndex)
{
if (SelectedItemIndex == 0)
{
MessageBox.Show("first item selected");
}
else if (SelectedItemIndex == 1)
{
MessageBox.Show("second item selected");
}
else if(SelectedItemIndex == 2)
{
MessageBox.Show("third item is selected");
}
else if (SelectedItemIndex == 3)
{
MessageBox.Show("fourth item is selected");
}
}
这导致此处显示的输出: