c# - VSTO Outlook 加载项:如何检查在重复窗口中标记了哪个单选按钮?
问题描述
我有一个 VSTO Outlook 加载项,我需要收集所有日历和任务项目及其所有属性。这没关系,但是当我使用 RecurrencePattern 时问题就来了。它工作得很好,并且返回了我需要的几乎所有属性,除了一个。
在“重复范围”表格中,用户可以在选择树单选按钮时选择继续其任务的时间。
- 没有结束日期
- 结束后:3(例如)次出现
- 结束于:某个日期
RecurrencePattern 仅对第一个具有布尔属性 - 没有结束日期。
当第一个收音机未标记时,我需要了解第二个或第三个收音机中的哪一个被标记,但 RecurrencePattern 没有它们的属性。它返回出现次数和结束日期,但我需要选中的单选按钮。
我想知道我是否可以在这些单选按钮上有一个事件,或者我可以以其他方式获取它们的布尔属性,但我找不到任何相关信息。
我不使用 Ribbon 或其他形式,在这种情况下我不需要使用它。
我的 Outlook 是 2016 年,.net 框架是 4.6.1。
感谢您的帮助!
解决方案
由于某些莫名其妙的原因,Outlook 对象模型不会公开该信息。您可以自己解析重复模式 blob(其格式已记录,但解析起来并不有趣),也可以使用Redemption及其RDORecurrencePattern。PatternEndKind
财产。假设在 Outlook 中选择了定期约会:
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set appt = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
strPattern = "Not recurring"
if appt.IsRecurring Then
set pattern = appt.GetRecurrencePattern
select case pattern.PatternEndKind
case 0 strPattern = "No end date" 'rekNoEndDate
case 1 strPattern = "End after X occurrences" 'rekEndAfterOccurrences
case 2 strPattern = "End by date" 'rekEndByDate
end select
End If
MsgBox strPattern
推荐阅读
- json - 无法使用类型为“(Codable.Type?
- android - “Delphi 10.3 Rio”中 TChart 的屏幕方向问题
- common-lisp - 在 sbcl 类型声明中使用异或
- php - whatsapp/chat-api v3.2.0.1 需要 ext-mcrypt * -> 您的系统中缺少请求的 PHP 扩展 mcrypt
- batch-file - Windows 10 中 for for 循环的奇怪行为
- google-cloud-dataflow - 如何在 Cloud Dataflow 中验证基于服务帐户的身份验证
- typescript - 基于参数的firestore查询中的条件where子句
- javascript - 如何修复循环以检查复选框是否被选中,如果是,则将值附加到字符串?
- sql - 如何创建滚动总计字段?
- python - Matplotlib 对数刻度显示为整数解决方法不适用于指定的刻度