2016-06-23 19 views
0

Wenn ich ein Outlook.MailItem habe, wie bekomme ich die Position, Breite und Höhe davon?VSTO: Wie kann ich einen Mail-Artikel als Formular umwandeln?

Auch ich muss das gesamte Outlook.MailItem Formular "deaktivieren" - wie mache ich das?

Ich möchte einen zentrierten "modalen" Dialog (nur ein Windows.Forms.Form) über dieses MailItem zeigen, ohne dass es tatsächlich modal ist.

Dank

Update (mehr erklären) ...

Wenn ein Benutzer klickt auf „Senden“ auf einem Mail, ich will es für große Dateien vor dem Versenden und wenn die Dateigröße zu überprüfen ist zu groß , dann möchte ich den Dialog "Dateien sind zu groß, möchte sie zippen" anzeigen. Der Dialog muss auf das Mailformular zentriert sein und das Mailformular deaktivieren (wie ein Dialog), ohne dass der Outlook eingefroren wird.

+0

Sie versuchen also, einen Outlook-Inspector zu ersetzen? Warum nicht einfach schließen? –

+0

Bitte beachten Sie mein Update oben. – MojoDK

Antwort

0

Das Standardformular in Outlook muss nicht deaktiviert werden. Das Open -Ereignis der MailItem-Klasse, die ausgelöst wird, wenn eine Instanz des übergeordneten Objekts in einem Inspector geöffnet wird. Der Parameter Cancel, der an den Ereignishandler übergeben wird, ermöglicht das Abbrechen der Standardaktion. Wenn die Ereignisprozedur dieses Argument auf "True" setzt, wird die Operation open nicht abgeschlossen und der Inspector wird nicht angezeigt. Wenn dieses Ereignis eintritt, wird das Inspector-Objekt initialisiert, aber noch nicht angezeigt. Das Open-Ereignis unterscheidet sich vom Read-Ereignis dadurch, dass Read ausgeführt wird, wenn der Benutzer das Element in einer Ansicht auswählt, die die Bearbeitung in der Zelle unterstützt, sowie wenn das Element in einem Inspector geöffnet wird.

Sie können auch Outlook-Formularbereich verwenden. Das Layout "Ersetzung-alle" ermöglicht das Überschreiben des gesamten Inspektorfensters. Weitere Informationen finden Sie unter Creating Outlook Form Regions.

+0

Bitte beachten Sie mein Update oben - sry für nicht klar genug. :) – MojoDK

0

Warum müssen Sie irgendetwas mit dem Formular tun? Verarbeiten Sie das Application.ItemSend-Ereignis, zeigen Sie bei Bedarf die Eingabeaufforderung an, und brechen Sie ggf. den Übermittlungsprozess ab.

+0

Da ich unter bestimmten Umständen eine Auswahl treffen muss, bevor ich die Mail sende - wie wenn die Dateien zu groß sind und ich fragen muss, ob der Benutzer sicher ist, dass der Empfänger so große Mails erhalten kann oder wenn der Benutzer ein klickt Schaltfläche, um die E-Mail in unser CRM-System zu exportieren, und die E-Mail ist bereits exportiert - dann muss ich den Benutzer warnen. – MojoDK

+0

Ok, Sie können also ein Dialogfeld mit dem aktiven Inspektor als Elternfenster anzeigen, oder? –

+0

Nein - ich bekomme diesen Fehler: 'Public Shared Overloads Funktion anzeigen (Besitzer als IWin32Window, Text als String) als DialogResult': Argument passende Parameter 'Besitzer' verengt sich von 'Inspektor' zu 'IWin32Window' – MojoDK

Verwandte Themen