Kei*_*ith 13 c# vsto outlook-addin
我正在创建一个Outlook 2010加载项,并为我的功能区添加了一个上下文菜单,用于idMso ="contextMenuMailItem".点击,我想删除一个类别,但在click事件处理程序中,当我将ctl.Context转换为MailItem时,它始终为null.
public bool btnRemoveCategory_IsVisible(Office.IRibbonControl ctl)
{
MailItem item = ctl.Context as MailItem; //Always null
if (item != null)
return (item != null && HasMyCategory(item));
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这里发生了什么?谢谢!
小智 13
以下链接可能会为您提供一些见解:
http://msdn.microsoft.com/en-us/library/ff863278.aspx
控件的"上下文"为您提供了自定义的相应Outlook对象(例如Inspector对象).从那里你需要引用上下文对象的CurrentItem属性来获取MailItem.
例如,
public bool btnRemoveCategory_IsVisible(Office.IRibbonControl ctl)
{
var item = ctl.Context as Inspector;
var mailItem = item.CurrentItem as MailItem;
if (item != null)
return (item != null && HasMyCategory(item));
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
希望,这有帮助.
从所选邮件项目的上下文菜单中点击事件后,您可以检索邮件项目 -
public bool btnRemoveCategory_IsVisible(Office.IRibbonControl ctl)
{
Explorer explorer = Globals.ThisAddIn.app.ActiveExplorer();
if (explorer != null && explorer.Selection != null && explorer.Selection.Count > 0)
{
object item = explorer.Selection[1];
if (item is MailItem)
{
MailItem mailItem = item as MailItem;
}
}
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多详情,请访问这里.
| 归档时间: |
|
| 查看次数: |
16820 次 |
| 最近记录: |