我正在开发一个MS Word 2010 AddIn,其中我有一个组合框,可以在更改时更新类属性:
private void comboboxFloweringStart_SelectedIndexChanged(object sender, EventArgs e)
{
Globals.ThisAddIn.currentTaxon.FloweringStart = (short)this.comboboxFloweringStart.SelectedIndex;
}
此类在shutdown(ThisAddIn_Shutdown
事件处理程序)上序列化。根据我设计的用户控件Microsoft.Office.Tools.CustomTaskPane taxonMarkupPanel
,组合框位于TaxonPanel myTaxonPanel
。
问题是,在关闭事件触发之前的某个时刻,组合框上的SelectedIndexChanged
事件将触发并将值重置为0,这是序列化的值。我知道我可以使用SelectionChangeCommitted
而不是SelectedIndexChanged
,但我有时会在代码中设置索引,并且事件也会在这些情况下触发。
CustomTaskPane没有可用于取消订阅事件处理程序的close事件,而且我不知道VSTO关闭时的事件顺序。是否还有其他可以订阅的事件,或者在关闭自定义任务窗格/用户控件时可以取消订阅SelectedIndexChanged
事件处理程序的其他方式?
答案 0 :(得分:1)
您应该订阅到应用的DocumentBeforeClose
事件,和/或文档的<{1}}事件
Close