1

書き込み後にContactitemを変更するOutlookアドインを作成します。ItemChangeEventHandlerを使用します

folder.ItemChange += new Outlook.ItemsEvents_ItemChangeEventHandler(ContactItemChange);

しかし、アイテムを編集しているとき、コードは常にバックグラウンドで実行されるため、アイテムを編集できません。

item.AfterWriteとitem.Writeを試しましたが、イベントがトリガーされることはありません。

    private void ContactItemChange(object item)
    {
        if (item is ContactItem)
        {
            ((ContactItem)item).AfterWrite += ThisAddIn_Write;
        }
    }

助けが必要!さようならこの美術部には

4

1 に答える 1

1

イベント登録でガベージ コレクションが発生している可能性があります。がプライベート クラス メンバーとして宣言されていることを確認します。イベント ハンドラーが適切に登録され、破棄されないようにするために、 (または類似の)folderのプライベート クラス メンバー コレクションも管理する必要があります。ContactItemsList<ContactItem>AfterWrite

参考までに、イベント処理に関する VSTO の制限と、Office イベントに適切にアタッチする方法について説明しているこの SO 投稿を参照してください。

于 2012-06-04T12:51:36.060 に答える