目标: C#.Net VSTO2010 我需要在outlook中的约会/日历项目窗口中添加一个面板。 AppointmentItem窗口表示当我们单击约会或在Outlook中创建新约会时打开的窗口。 我需要在appointmentItem窗口中显示一些细节(appoitnmentitem相关)(我更喜欢使用面板)。 实际上我在单独的选项卡中显示一些细节(插件相关的详细信息)作为约会项目窗口中的表单,我想在约会项目的单个窗口(约会项目窗口)中显示这些细节
Inspector:表示显示Outlook项目的窗口。 但在Inspector中,不支持添加面板
我可以在outlook主窗口中添加面板或自定义任务窗格。但我无法在预约窗口中进行操作。
我正在使用.Net 4框架,visual studio 2010.这必须在一个outlook Addin中完成,addin是MS office outlook 2003,2007,2010的目标(至少它应该支持2007和2010)。
向outlook主窗口添加面板可以使用窗口句柄和窗口类完成,然后使用User32.dll中的函数。但同样的技术我无法在约会项目窗口使用。(我无法获得预约项目窗口的处理)
将自定义任务窗格添加到Outlook主窗口可以使用一些代码完成,但我没有找到在约会项目窗口上执行此操作的功能。
寻求良好的帮助或建议
答案 0 :(得分:0)
您可以通过“自定义任务”窗格和“新检查器事件处理程序”添加侧面板。
第1步:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
inspectors = this.Application.Inspectors;
inspectors.NewInspector +=
new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(NewInspectorHandler);
}
第2步:
public void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
if(Inspector.CurrentItem is Microsoft.Office.Interop.Outlook.AppointmentItem ) {
UserControl uc1 = MyUserControl();
myCustomTaskPane = getAddIn().CustomTaskPanes.Add(uc1, "MyPanel",Inspector);
myCustomTaskPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;
myCustomTaskPane.DockPositionRestrict = Office.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange;
myCustomTaskPane.Visible = true;
}
//Additionally You can add a property change listener to the current Item here
}
这将在约会项目
中显示自定义侧面板