gpt4 book ai didi

c# - 功能区 XML 下拉控件默认选择

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:10 26 4
gpt4 key购买 nike

我是 VSTO 的新手,我正在尝试创建一个带有一些简单控件的 Excel 功能区。我知道在 Visual Studio 中有两种方法可以做到这一点。功能区 XML 和功能区设计器,据我所知,大多数人更喜欢 XML 方法,因为它提供了更大的灵 active 。

我尝试了两种方法来创建带有选项卡和下拉菜单的简单功能区。通过功能区设计器,我可以看到生成的 C#“代码隐藏”,我可以使用它来在运行时更改控件。此外,下拉列表自动默认为第一项,但使用生成的 C# 对象,我可以将其设置为我想要的任何内容。

我尝试用 XML 方法做同样的事情,这是 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="myTab" label = "My Tab" >
<group id="MyGroup" label="My Group" >
<dropDown id="dropDown" label="Items">
<item id="item1" label="Item 1" />
<item id="item2" label="Item 2" />
<item id="item3" label="Item 3" />
</dropDown>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

但是组合框没有默认项,它只是空的。并且没有可见的“代码隐藏”或我可以使用的数据绑定(bind)?如何为此控件设置默认项(例如 id=item1)。

图片清晰

没有默认项:

Not Initialized

有默认项:

Initialized

提前致谢

最佳答案

功能区 XML 中定义的任何回调都将在功能区加载时自动执行(唯一需要特别初始化的是对功能区本身的引用)。因此,如果您想使用其 ID 指定默认值,请在下拉列表定义中包含该回调。或者,您可以按索引选择。

分配给 getSelectedItemID(或 getSelectedItemIndex)的字符串是应该执行的过程的名称。

密切关注功能区回调的方法签名。对于C#,getSelectedItemId需要返回一个stringgetSelectedItemIndex 一个 int。您将在文章系列的第 3 部分中找到方法签名列表 Customizing the 2007 Office Fluent Ribbon for Developers

     // Ribbon1.xml
<dropDown id ="dd1" getSelectedItemID="InitializeDropdown" >
<item id="ddItem1" label="Item 1"/>
<item id="ddItem2" label="Item 2"/>
</dropDown>

// Ribbon1.cs
public void Ribbon_Load(Office.IRibbonUI ribbonX)
{
ribbon = ribbonX;
}

//will be executed automatically when Ribbon_Load runs
public string InitializeDropdown(Office.IRibbonControl ctl)
{
return "ddItem2";
}

关于c# - 功能区 XML 下拉控件默认选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49230905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com