我在 Word 中有一个自定义功能区。功能区有一个组合框:comboBox_recentConditions,它是使用设计器定义的 - 因此它已初始化并且在加载时为空。现在,我想在每次触发 Application_WindowActivate 事件时动态设置此组合框。
每个 Word 文档都有自己的名为RibbonControls的类实例:
class RibbonControls
{
private RibbonComboBox recentConditionComboBox;
public RibbonControls()
{
this.recentConditionComboBox = new RibbonComboBox();
}
public RibbonComboBox RecentConditionComboBox
{
get
{
return recentConditionComboBox;
}
set
{
recentConditionComboBox = value;
}
}
}
现在在 Application_WindowActivate 事件中,我执行以下操作:
static void Application_WindowActivate(Document doc, Window Wn)
{
Globals.Ribbons.SourceRibbon.comboBox_recentConditions = WordGate.docRibbonControls.RecentConditionComboBox;
}
问题是 Ribbon 组合框控件不会更改,它始终是空的,即使在调用 Application_WindowActivate 之后也是如此。我在运行时进行了测试,看看每个文档是否确实有自己的组合框及其项目——这似乎有效。我错过了什么?
澄清我的问题: 假设我在 comboBox.Items 中有 3 个项目。单击它时,我什么也看不到,但是如果我添加以下内容:
MessageBox.Show(Globals.Ribbons.SourceRibbon.comboBox_recentConditions.Items.Count.ToString());
最后Application_WindowActivate
会打印出数字 3。
谢谢。