在Outlook中,我们需要禁用从外部源(作为加载项的一部分)导入的联系人的编辑。为了区分这些联系人,我们引入了用户定义的属性,我们在导入期间设置了该属性(例如ExternalId)。
但是,如何在代码中禁用此类联系人的编辑功能?
答案 0 :(得分:1)
无法以编程方式执行此操作。
答案 1 :(得分:0)
我想说在Outlook中禁用编辑联系人没有什么简单的方法。
但是!您可以开发一个自定义UI,在大多数情况下可以阻止联系人编辑 - 替换Inspectors和Explorers中的默认UI。因此,用户将获得您的自定义UI,您可以在其中允许编辑联系人。有关详细信息,请参阅Creating Outlook Form Regions。
您可能还会发现Advanced Outlook view and form regions有帮助。
答案 2 :(得分:0)
当然可以禁用它!
您可以禁用显示包含联系人详细信息的对话框(关键提示:挂钩到Application.ItemLoad
,如果是您不想编辑的联系人,可以取消该活动)
或者,您最好拒绝保存更改。请参阅示例代码。
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.Inspectors.NewInspector += Inspectors_NewInspector;
}
private void Inspectors_NewInspector(Outlook.Inspector Inspector)
{
Outlook.ContactItem contact = Inspector.CurrentItem as Outlook.ContactItem;
if (null != contact)
{
if (Utils.IsNonEditableContact(contact))
{
contact.Write += CancelSaveEventForContact;
}
}
}
private void CancelSaveEventForCrmContact(ref bool Cancel)
{
MessageBox.Show("Editing of the this contacts in Outlook is not allowed.", "I'm sorry!", MessageBoxButtons.OK, MessageBoxIcon.Error);
Cancel = true;
}