Практическое руководство. Использование диалоговых окон, встроенных в Word
Обновлен: Ноябрь 2007
Применение |
---|
Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
При работе с Microsoft Office Word бывают ситуации, когда нужно отобразить диалоговые окна для ввода пользователя. Хотя можно использовать собственный подход, может также понадобиться использовать подход с использованием диалоговых окон, встроенных в Word и представленных в коллекции Dialogs объекта Application. Это дает возможность доступа к более чем к 200 встроенным диалоговым окнам, представленным как перечисления.
Использование встроенного диалогового окна
Используйте одно из значений перечисления WdWordDialog для создания объекта Dialog, представляющего диалоговое окно Word, которое нужно отобразить. Чтобы использовать следующий пример кода, запустите его из класса ThisDocument или ThisAddIn в проекте.
Dim dlg As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFileNew)
Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileNew];
После создания переменной Dialog можно вызвать ее методы.
dlg.Show()
object timeOut = 0; dlg.Show(ref timeOut);
Доступ к элементам диалогового окна
Получите тип диалогового окна и установите для свойства Name значение Testing. Чтобы использовать следующий пример кода, запустите его из класса ThisDocument или ThisAddIn в проекте.
Примечание. Взаимодействие со встроенными диалоговыми окнами Word производится через позднее связывание, так что если для Option Strict установлено значение On, или используется C#, непосредственный доступ к элементам диалогового окна невозможен. Для доступа к элементам диалогового окна необходимо использовать библиотеки отражения.
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)
Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen]; System.Type dlgType = typeof(Word.Dialog); // Set the Name property of the dialog box. dlgType.InvokeMember("Name", System.Reflection.BindingFlags.SetProperty | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, dlg, new object[] {"Testing"}, System.Globalization.CultureInfo.InvariantCulture);
Отобразите диалоговое окно, а затем отобразите свойство Name в окне сообщения.
' 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))
// Display the dialog box. dlg.Show(ref missing); // Show the Name property. MessageBox.Show(dlgType.InvokeMember("Name", System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, dlg, null, System.Globalization.CultureInfo.InvariantCulture).ToString());
См. также
Задачи
Практическое руководство. Использование диалоговых окон Word в скрытом режиме
Основные понятия
Общие сведения об объектной модели Word
Общие сведения о необязательных параметрах в решениях Office