如何在Outlook C#中统一Reply与Reply-All按钮的启用禁用状态
Outlook多邮件选中时Reply/Reply-all按钮状态不一致问题
现象
- 从上到下选中多封邮件时,Reply/Reply-all按钮处于启用状态
- 从下到上选中多封邮件时,Reply/Reply-all按钮处于禁用状态
案例展示
案例1:先选‘Test 2’再选‘Test 1’ → Reply/Reply-all按钮启用
案例2:先选‘Test 1’再选‘Test 2’ → Reply/Reply-all按钮禁用
已尝试的实现代码
我通过Explorer.SelectionChange事件检测多邮件选中状态,尝试用MailItem.Actions["Reply"].Enabled = false;禁用Reply/Reply-All按钮,代码如下:
Explorer objExplorer = (Explorer)Api.Instance.GetActiveExplorer(); if (objExplorer != null) { objExplorer.SelectionChange += () => { Selection objSelectionList = objExplorer.Selection; if (objSelectionList != null && objSelectionList.Count > 1 && objSelectionList[1] != null) { MailItem objMailItem = objSelectionList[1] as MailItem; if (objMailItem != null) { objMailItem.Actions["Reply"].Enabled = false; objMailItem.Actions["Reply to All"].Enabled = false; } } }; }
当前问题
上述代码无法实现让案例1中的按钮像案例2一样禁用,操作时仅弹出提示‘This action not available for this item’。
需求
为保持两种选中场景下按钮状态一致,需从以下方向寻求解决方案:
- 让案例2中的按钮像案例1一样启用
- 让案例1中的按钮像案例2一样禁用
内容的提问来源于stack exchange,提问作者Smit Rathod
相关产品推荐
相关产品推荐

