我刚购买:http://www.add-in-express.com/outlook-regions/
我购买该产品的原因是因为我需要在选择特定文件夹时在outlook主视图上显示自定义表单。我通过以下方式设法做到了这一点:
创建一个新的Project int visual studio(Outlook 2010加载项)
创建项目后,我添加:
因为我希望该表单显示在邮件的主文件夹视图中(替换所有其他视图),我选择此选项:
我点击下一步并按照所有默认设置创建表单。
创建该表单后,我添加了我需要的按钮和图像。在这个例子中,我将只添加一个按钮。
当我运行outlook并选择我的收件箱文件夹时,显示的是: (换句话说,每当我选择一个类型为olMailItem的文件夹时,表单会显示出来)
所以现在我解决了在“主视图”上显示我的自定义表单的目标
现在我的问题是如何才能在特定文件夹上显示该表单。例如,我不想在选择“收件箱”文件夹时显示该表格,但我想在选择“发件箱”文件夹时显示该表格
让我们尝试隐藏表单并在单击按钮时显示默认视图。
为了解决我遇到的问题:http://www.add-in-express.com/forum/read.php?FID=5&TID=4540
我已经完成了相同的步骤,但表格又出现了!换句话说,按钮背后的代码如下所示:
private void button1_Click(object sender, EventArgs e)
{
// get current folder in this case its inbox the one that is selected
MAPIFolder currentFolder = Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder;
Globals.ThisAddIn.ADXOlForm1Item.FolderName = string.Empty;
// clear web properties DO NOT SHOW WEB VIEW
currentFolder.WebViewURL = string.Empty;
currentFolder.WebViewOn = false;
// RESET FOLDER BY SELECTING A DIFFERENT ONE THEN THE SAME ONE
NameSpace nameSpace = Globals.ThisAddIn.Application.GetNamespace("MAPI");
MAPIFolder outboxFolder = nameSpace.GetDefaultFolder(OlDefaultFolders.olFolderOutbox);
Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder = outboxFolder; // CHANGE FOLDER TO A DIFFERNT ONE
System.Windows.Forms.Application.DoEvents();
Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder = currentFolder; // SET INBOX AGAIN
}
当我运行该代码时,默认视图显示1秒,然后它被表单替换!
当我添加表单区域时,Addin Express会为我创建的表单添加ADXOlFormsManager
和ADXOlFormsCollectionItem
。根据你的回答我做了:
#region ADXOlForm1
// TODO: Use the ADXOlForm1Item properties to configure the region's location, appearance and behavior.
// See the "The UI Mechanics" chapter of the Add-in Express Developer's Guide for more information.
ADXOlForm1Item = new ADXOlFormsCollectionItem();
ADXOlForm1Item.FolderName = "MyCustomFolder"; // <---- ADDED THIS LINE HOPING TO SHOW THIS FORM ONLY WHEN THAT FOLDER IS SELECTED
ADXOlForm1Item.ExplorerLayout = ADXOlExplorerLayout.WebViewPane;
ADXOlForm1Item.ExplorerItemTypes = ADXOlExplorerItemTypes.olMailItem;
ADXOlForm1Item.UseOfficeThemeForBackground = true;
ADXOlForm1Item.FormClassName = typeof(ADXOlForm1).FullName;
this.FormsManager.Items.Add(ADXOlForm1Item);
#endregion
我希望该表单只显示在MyCustomFolder
中,但在选择ADXOlExplorerItemTypes.olMailItem
类型的任何文件夹时会显示。也许我做错了什么......
换句话说,我希望只有MAPIFolder MyCustomFolder
文件夹具有属性
WebViewOn=true;
WebViewURL = "...AppData\Local\Temp\AddinExpress\ADXOlFormGeneral.html"
但是当我浏览Outlook中的所有文件夹时,即使指定了ADXOlForm1Item.FolderName = "MyCustomFolder";
答案 0 :(得分:2)
感谢您选择加载项快速区域。
我理解前景的主要观点&#34;作为Outlook启动时显示的文件夹。默认情况下,该文件夹是邮件存储的顶级文件夹。请注意,这可以更改,请参阅文件|选项|高级|在此文件夹中启动Outlook。我使用此设置,以便我的Outlook在启动时向我显示收件箱。
以下是来自
ADXOlFormsCollectionItem 提供了许多属性,允许指定表单的上下文设置。比如说,您可以指定要为其显示表单的项类型。请注意,对于资源管理器,您指定的项类型将与当前文件夹的默认项类型进行比较。此外,您还可以在 FolderName 和 FolderNames 属性中指定要为其显示表单的文件夹的名称;这些属性也适用于Inspector窗口 - 在这种情况下,将检查Outlook项目的父文件夹。文件夹路径的一个示例是&#34; \ Personal Folders \ Inbox&#34;。
FolderName 中的特殊值是星号(&#39; *&#39;),表示&#34;所有文件夹&#34;。您还可以指定要为其显示表单的邮件类。请注意,使用 OR 布尔运算处理 ADXOlFormsCollectionItem 的所有上下文相关属性。也就是说,指定例如文件夹名称扩展,但不限制,将显示您的表单的上下文列表。
也就是说,如果您需要显示给定文件夹的表单,请在 FolderName / * FolderNames *属性中指定该文件夹的路径。
来自白俄罗斯(GMT + 3)的问候,
安德烈·斯莫林,加入快递团队负责人