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

C# 将面板添加到outlook中的约会/日历项目窗口,c#,.net,vsto,outlook-addin,C#,.net,Vsto,Outlook Addin,目标: C#.Net VSTO2010 我需要在outlook的“约会/日历项目”窗口中添加一个面板。 AppointmentItem窗口是指在outlook中单击约会或创建新约会时打开的窗口。 我需要在AppointItem窗口(我更喜欢使用面板)中显示一些详细信息(appointmentItem相关)。 实际上,我在约会项目窗口中以单独的选项卡形式显示一些详细信息(与附件相关的详细信息),我想在约会项目的单个窗口(约会项目窗口)中显示这些详细信息 检查器:表示显示Outlook项目的窗口。

目标: C#.Net VSTO2010 我需要在outlook的“约会/日历项目”窗口中添加一个面板。 AppointmentItem窗口是指在outlook中单击约会或创建新约会时打开的窗口。 我需要在AppointItem窗口(我更喜欢使用面板)中显示一些详细信息(appointmentItem相关)。 实际上,我在约会项目窗口中以单独的选项卡形式显示一些详细信息(与附件相关的详细信息),我想在约会项目的单个窗口(约会项目窗口)中显示这些详细信息

检查器:表示显示Outlook项目的窗口。 但在Inspector中,不支持添加面板

我可以在outlook主窗口中添加面板或自定义任务窗格,但无法在appointmentitem窗口中添加

我正在使用.NET4框架,VisualStudio2010。这必须在outlook中完成。加载项是MS office outlook 200320072010的目标(至少应支持2007年和2010年)

可以使用窗口句柄和窗口类,然后使用User32.dll中的函数,将面板添加到outlook主窗口。但我无法在AppointItem窗口上使用相同的技术。(我无法处理appointment item窗口)

可以使用一些代码将自定义任务窗格添加到outlook主窗口,但我在“约会项目”窗口中找不到这样做的功能


寻找好的帮助或建议

您可以通过自定义任务窗格和新的Inspector事件处理程序添加侧面板

步骤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
    }

这将在约会项目中显示自定义侧面板

您可以通过自定义任务窗格和新的Inspector事件处理程序添加侧面板

步骤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
    }

这将在约会项目中显示自定义侧面板

您是否尝试为约会创建表单区域?我不太确定您希望它看起来如何,但是在2007年和2010年创建表单区域很容易。您是说.oft表单吗?我想在我所说的主选项卡(约会选项卡)中显示一些详细信息,这些详细信息在一个选项卡(插件相关选项卡)中可用。ops表单,是的。您可以创建一个将显示在主窗体下方的窗体。这就是所谓的邻接表单区域。我找到了问题的解决方案。我得到了约会项目窗口的句柄,并在其中添加了一个面板…使用中的idea,我添加了面板以显示详细信息…谢谢GTG。。还有其他更好的方法吗?祝贺你,听起来你完成了:-)。另一种方法是使用外接程序Express创建表单区域,这将使您可以选择将区域放置在所需的位置(VSTO仅支持底部的邻接=)。看见但是,这需要花费大约美元的许可证费用,您需要重写您的加载项,因此,如果您的解决方案有效,请坚持使用它。您是否尝试过为约会创建表单区域?我不太确定您希望它看起来如何,但是在2007年和2010年创建表单区域很容易。您是说.oft表单吗?我想在我所说的主选项卡(约会选项卡)中显示一些详细信息,这些详细信息在一个选项卡(插件相关选项卡)中可用。ops表单,是的。您可以创建一个将显示在主窗体下方的窗体。这就是所谓的邻接表单区域。我找到了问题的解决方案。我得到了约会项目窗口的句柄,并在其中添加了一个面板…使用中的idea,我添加了面板以显示详细信息…谢谢GTG。。还有其他更好的方法吗?祝贺你,听起来你完成了:-)。另一种方法是使用外接程序Express创建表单区域,这将使您可以选择将区域放置在所需的位置(VSTO仅支持底部的邻接=)。看见但是,这需要花费大约美元的许可证,您需要重写您的加载项,所以如果您的解决方案有效,请坚持使用它。