在 Outlook VSTO 插件中调用了 SelectionChane,但 ActiveExplorer().Selection.Count = 0:
Posted
技术标签:
【中文标题】在 Outlook VSTO 插件中调用了 SelectionChane,但 ActiveExplorer().Selection.Count = 0:【英文标题】:SelectionChane is called but ActiveExplorer().Selection.Count = 0 in Outlook VSTO AddIn: 【发布时间】:2020-05-21 07:38:43 【问题描述】:我尝试获取当前选择的 AppointmentItem。为此,我处理 ActiveExplorer 的 SelectionChange 事件。 SelectionChange 经常被调用,但是当我尝试获取 Selection 时,计数 = 0。这是 Outlook 的已知错误吗?您可以通过以下方式自行检查:
[...]
currentExplorer.SelectionChange += new Outlook.ExplorerEvents_10_SelectionChangeEventHandler(Selection_Change);
[...] 然后在这里处理事件:
private void Selection_Change()
log.Info("currently selected: "+this.Application.ActiveExplorer.Selection.Count);
运行您的插件打开日历或收件箱。我/你会得到很多"current selected: 0"
但在文档中,它说除了 FileFolders Outlook 会自动选择当前视图中的第一项:https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/bb645132(v%3Doffice.14) 因此 Selection.Count 不应该是 0???
对此有任何建议
【问题讨论】:
您从哪里获得 Explorer 类的实例?您使用哪个 Outlook 版本? 【参考方案1】:Selection.Count 属性返回一个整数,指示选择中的项目或对话标题的数量。它在我的机器上就像一个魅力。很可能您的代码有问题 - 您打开了多个资源管理器窗口并从非活动窗口中获取选择对象等。
【讨论】:
【参考方案2】:Selection.Count == 0
绝对没有问题。切换到日历视图中的日历文件夹,然后单击没有约会的时间段 - Selection.Count 将为 0。
【讨论】:
以上是关于在 Outlook VSTO 插件中调用了 SelectionChane,但 ActiveExplorer().Selection.Count = 0:的主要内容,如果未能解决你的问题,请参考以下文章
VSTO Outlook 插件:当用户拖放定期约会时,无法在 Item_Change 事件中获取 AppointmentItem