好的,所以我生成了一个非常简单的功能区,以添加到用户打开的每个新撰写窗口中。丝带第一次工作正常。它上面有 2 个复选框,假设用户选择第一个复选框并发送他们的消息。
如果我在用户发送第一条消息时调试代码。如果ItemSend
我访问Globals.Ribbons.MyRibbon.MyCheckbox1.Checked
它,它将显示该复选框已选中。该窗口关闭,用户打开一封新电子邮件。
假设在第二封电子邮件中,用户单击了第二个复选框Globals.Ribbons.MyRibbon.MyCheckbox2.Checked
。如果我调试相同的ItemSend
事件并查看该字段,它将显示为 false,并且当前选中了第一个复选框。
就好像Globals.Ribbons.MyRibbon
控制实例没有得到正确更新,或者我误解了它没有得到正确处理。
编辑 1
作为更新,我使用了功能区(可视化设计器)来创建我的功能区。我应该使用功能区 (XML) 吗?
编辑 2
不知道如何将它添加到我的问题中,当它已经在上面的原始问题中时会有什么不同,但这是我在应用程序中使用的“代码”。
private void ThisAddIn_Startup(object sender, System.EventArgs e) {
this.Application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
}
void Application_ItemSend(object Item, ref bool Cancel) {
if (Globals.Ribbons.MyRibbon.MyCheckbox1.Checked) {
} else {
}
}