将面板添加到Outlook中的约会/日历项目窗口

时间:2012-05-21 09:46:58

标签: c# .net vsto outlook-addin

目标: 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主窗口可以使用一些代码完成,但我没有找到在约会项目窗口上执行此操作的功能。

寻求良好的帮助或建议

1 个答案:

答案 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
    }

这将在约会项目

中显示自定义侧面板