2

目的: C# .Net VSTO2010 Outlook の予定/カレンダー アイテム ウィンドウにパネルを追加する必要があります。AppointmentItem ウィンドウとは、予定をクリックするか、Outlook で新しい予定を作成したときに開くウィンドウを意味します。私は予定項目ウィンドウにいくつかの詳細(予定項目関連)を表示する必要があります(私はパネルを使用することを好みます)。実際には、予定項目ウィンドウのフォームとして別のタブにいくつかの詳細 (アドイン関連の詳細) を表示しています。

インスペクタ : Outlook アイテムが表示されるウィンドウを表します。ただし、インスペクターでは、パネルの追加はサポートされていません

Outlook のメイン ウィンドウにパネルまたはカスタム タスク ペインを追加できますが、予定項目ウィンドウには追加できません。

私は .Net 4 フレームワーク、visual studio 2010 を使用しています。

Outlook のメイン ウィンドウにパネルを追加するには、ウィンドウ ハンドルとウィンドウ クラスを使用してから、User32.dll の関数を使用します。しかし、同じテクニックをアポイントメント ウィンドウで使用することはできません (アポイントメント ウィンドウのハンドルを取得できません)。

Outlook のメイン ウィンドウにカスタム作業ウィンドウを追加するには、いくつかのコードを使用できますが、予定アイテム ウィンドウでそれを行う機能が見つかりませんでした。

良い助けや提案を探しています

4

1 に答える 1

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
    }

これにより、予定項目にカスタム サイド パネルが表示されます。

于 2015-04-20T12:41:32.390 に答える