5

Outlook アドイン プログラミングは初めてで、これが可能かどうかわかりません。

ポップアップ フォーム (または選択) を表示し、ユーザーが [送信] をクリックしたときに入力を求めたいと考えています。基本的に、電子メール (新規または返信) を送信するたびに、ドロップダウン ボックスで値を選択するように求められます (できれば SQL データベースからのリスト アイテム)。選択内容に基づいて、メールの件名にテキスト メッセージが追加されます。

調査を行ったところ、フォーム領域を使用する必要があるようですが、ユーザーが [送信] をクリックしたときにポップアップ/追加フォームを表示する方法がわかりません。また、Form Regions を使用して現在の VIEW メール フォームを拡張/置換できるようですが、CREATE NEW フォームに使用できますか?

みんなの時間をありがとう。

4

1 に答える 1

5

おそらく、ThisAddIn Internal Startup メソッドに Item Send イベント ハンドラーを追加してから、Item Send Event でカスタム フォーム (Windows フォーム) を呼び出すことができます。以下のサンプルでは、​​メール アイテムが送信される前と送信ボタンがクリックされた後に、カスタム ウィンドウ フォームをモーダル ダイアログとして呼び出します。

private void InternalStartup()
{
    this.Application.ItemSend += new ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
}

void Application_ItemSend(object Item, ref bool Cancel)
{
    if (Item is Microsoft.Office.Interop.Outlook.MailItem)
    {
        Microsoft.Office.Interop.Outlook.MailItem currentItem = Item as Microsoft.Office.Interop.Outlook.MailItem; 
        Cancel = true;
        Forms frmProject = new ProjectForm();;

        DialogResult dlgResult = frmProject.ShowDialog();

        if (dlgResult == DialogResult.OK) 
            System.Windows.Forms.SendKeys.Send("%S"); //If dialog result is OK, save and send the email item
        else
            Cancel = false; 

        currentItem.Save();
        currentItem = null;
    }
}
于 2009-12-09T08:29:15.320 に答える