Gewusst wie: Verwenden integrierter Dialogfelder in Word
Bei der Arbeit mit Microsoft Office Word ist es gelegentlich nötig, Dialogfelder für Benutzereingaben anzuzeigen. Sie können eigene Dialogfelder erstellen oder aber die in Word integrierten Dialogfelder verwenden, die in der Dialogs-Auflistung des Application-Objekts verfügbar sind. Auf diese Weise können Sie auf mehr als 200 integrierte Dialogfelder zugreifen, die als Enumerationen dargestellt sind.
Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und auf Anwendungsebene für Word 2007 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.
Anzeigen von Dialogfeldern
Verwenden Sie zum Anzeigen eines Dialogfelds einen der Werte der WdWordDialog-Enumeration, um ein Dialog-Objekt zu erstellen, das das anzuzeigende Dialogfeld darstellt. Rufen Sie anschließend die Show-Methode eines Dialog-Objekts auf.
Im folgenden Codebeispiel wird veranschaulicht, wie das Dialogfeld Datei öffnen angezeigt wird. Wenn Sie dieses Beispiel verwenden möchten, führen Sie es von der ThisDocument-Klasse oder der ThisAddIn-Klasse im Projekt aus.
Dim dlg As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFileOpen)
dlg.Show()
Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dlg.Show();
Zugreifen auf Dialogfeldmember, die durch späte Bindung verfügbar sind
Einige Eigenschaften und Methoden von Dialogfeldern in Word sind nur durch späte Bindung verfügbar. In Visual Basic-Projekten, in denen sich Option Strict auf oder in Visual C#-Projekten befindet, die auf .NET Framework 3.5 abzielen, muss der Zugriff auf die Member mithilfe von Reflektion erfolgen. Weitere Informationen finden Sie unter Späte Bindung in Office-Lösungen.
Im folgenden Codebeispiel wird veranschaulicht, wie die Name-Eigenschaft des Dialogfelds Datei öffnen in Visual Basic-Projekten verwendet wird, in denen sich Option Strict außerhalb von oder in Visual C#-Projekten befindet, die auf .NET Framework 4 abzielen. Wenn Sie dieses Beispiel verwenden möchten, führen Sie es von der ThisDocument-Klasse oder der ThisAddIn-Klasse im Projekt aus.
Private Sub TestDynamicDialog()
Dim dialog As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
dialog.Name = "Testing"
dialog.Show()
MessageBox.Show(dialog.Name)
End Sub
dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dialog.Name = "Testing";
dialog.Show();
MessageBox.Show(dialog.Name);
Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe von Reflektion auf die Name-Eigenschaft des Dialogfelds Datei öffnen in Visual Basic-Projekte zugegriffen wird, in denen sich Option Strict auf oder in Visual C#-Projekten befindet, die auf .NET Framework 3.5 abzielen. Wenn Sie dieses Beispiel verwenden möchten, führen Sie es von der ThisDocument-Klasse oder der ThisAddIn-Klasse im Projekt aus.
Dim dlg As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
Dim dlgType As Type = GetType(Word.Dialog)
' Set the Name property of the dialog box.
dlgType.InvokeMember("Name", _
Reflection.BindingFlags.SetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, New Object() {"Testing"}, _
System.Globalization.CultureInfo.InvariantCulture)
' Display the dialog box.
dlg.Show()
' Show the Name property.
MessageBox.Show(dlgType.InvokeMember("Name", _
Reflection.BindingFlags.GetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, Nothing, _
System.Globalization.CultureInfo.InvariantCulture))
Word.Dialog dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
System.Type dialogType = typeof(Word.Dialog);
// Set the Name property of the dialog box.
dialogType.InvokeMember("Name",
System.Reflection.BindingFlags.SetProperty |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance,
null, dialog, new object[] { "Testing" },
System.Globalization.CultureInfo.InvariantCulture);
// Display the dialog box.
dialog.Show(ref missing);
// Show the Name property.
MessageBox.Show(dialogType.InvokeMember("Name",
System.Reflection.BindingFlags.GetProperty |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance,
null, dialog, null,
System.Globalization.CultureInfo.InvariantCulture).ToString());
Siehe auch
Aufgaben
Gewusst wie: Verwenden von Word-Dialogfeldern im ausgeblendeten Modus
Referenz
Reflektion (C# und Visual Basic)
Konzepte
Optionale Parameter in Office-Lösungen