2016-06-23 1 views
0

もし私がOutlook.MailItemを持っていたら、これの位置、幅、高さはどうすればわかりますか?VSTO:フォームとしてメールアイテムをキャストするにはどうすればよいですか?

また、Outlook.MailItemフォーム全体を「無効にする」必要があります。どうすればいいですか?

私は実際にモーダルではなく、このMailItem上に中央の "モーダル"ダイアログ(Windows.Forms.Formだけ)を表示したいと思います。

おかげ

アップデート(詳細は説明するが)...

ユーザーがメールの「送信」をクリック

、私は、送信する前に大きなファイルのためにそれをチェックすると、ファイルサイズが大きすぎる場合私は "ファイルが大きすぎます、あなたはそれらを圧縮したいですか"ダイアログを表示したいと思います。ダイアログはメールフォームの中央に配置し、Outlookをフリーズすることなく(ダイアログのように)メールフォームを無効にする必要があります。

+0

Outlookのインスペクタを交換しようとしていますか?単にそれを閉じるのではないのですか? –

+0

上記の私の更新をご覧ください。 – MojoDK

答えて

0

Outlookで既定のフォームを無効にする必要はありません。

たとえば、親オブジェクトのインスタンスがインスペクタで開かれているときに発生するMailItemクラスのイベントです(Open)。イベントハンドラに渡されるパラメータCancelは、デフォルトアクションを中止することを可能にします。イベントプロシージャがこの引数をTrueに設定すると、オープン操作は完了せず、インスペクタは表示されません。 このイベントが発生すると、Inspectorオブジェクトは初期化されますが、まだ表示されません。 OpenイベントはReadイベントと異なり、ユーザーがセル内編集をサポートしているビューで項目を選択したときだけでなく、アイテムがインスペクタで開かれているときにもReadが発生します。

Outlookフォーム領域を使用することもできます。 Replacement-allレイアウトではインスペクタウィンドウ全体をオーバーライドできます。詳細については、Creating Outlook Form Regionsを参照してください。

+0

上記の私の更新を参照してください。 :) – MojoDK

0

なぜフォームを使用する必要がありますか? Application.ItemSendイベントを処理し、必要に応じてプロンプトを表示し、必要に応じて送信プロセスをキャンセルします。

+0

メールが送信される前に選択する必要がある状況があります。ファイルが大きすぎる場合など、受信者がこのような巨大なメールを受信できるかどうかを確認する必要があります。ボタンを押して、CRMシステムにメールをエクスポートします。メールはすでにエクスポートされていますので、ユーザーに警告する必要があります。 – MojoDK

+0

これで、アクティブインスペクタを親ウィンドウとしてダイアログボックスを表示できますか? –

+0

Nope - このエラーが表示されます。 'Public Shared Overloads Function Show(所有者としてIWin32Window、Text As Stringとして)DialogResult':引数 'Owner'が 'Inspector'から 'IWin32Window'に絞り込まれます。 – MojoDK

関連する問題