- Создание и отображение диалоговых окон Creating and Displaying Dialog Boxes
- Создание диалогового окна Dialog Creation
- Диалоговые окна в Windows Forms Dialog Boxes in Windows Forms
- в этом разделе In This Section
- Связанные разделы Related Sections
- Как создавать диалоговые окна в Windows?
- Как создавать диалоговые окна с ошибкой?
- Поле «5+16» приказывает системе создавать диалоговые окна с ярлыком критической ошибки и двумя кнопками. Это, как видно, кнопки «повтор» и «отмена». Но как вы уже поняли, можно создавать диалоговые окна и с другими настройкам, и всё это благодаря комбинации цифр или чисел. Это – числовые выражения постоянных, отвечающие за выводимые кнопки, значки и режимы окна. Подробнее смотрим ниже:
- Диалоговые окна VBS: множество постоянных и переменных.
- Создание модальных диалоговых окон и управление ими Create and manage modal dialog boxes
- Создание диалогового окна, производного от Диалогвиндов Create a dialog box derived from DialogWindow
- Создание и управление диалоговым окном, не производным от Диалогвиндов Create and manage a dialog box not derived from DialogWindow
- Создание настраиваемого диалогового окна Creating a Custom Dialog Box
- Поддержка и обратная связь Support and feedback
Создание и отображение диалоговых окон Creating and Displaying Dialog Boxes
Создание объекта диалогового окна является двухфазной операцией. Creating a dialog object is a two-phase operation. Сначала создайте объект диалогового окна, а затем — диалоговое окно. First, construct the dialog object, then create the dialog window. Модальные и немодальные диалоговые окна немного отличаются в процессе, который используется для их создания и вывода. Modal and modeless dialog boxes differ somewhat in the process used to create and display them. В следующей таблице показано, как обычно создаются и отображаются модальные и немодальные диалоговые окна. The following table lists how modal and modeless dialog boxes are normally constructed and displayed.
Создание диалогового окна Dialog Creation
Тип диалога Dialog type | Создание How to create it |
---|---|
Modeless Modeless | Создайте CDialog , а затем вызовите Create функцию члена. Construct CDialog , then call Create member function. |
Модальный режим Modal | Создайте CDialog , а затем вызовите DoModal функцию члена. Construct CDialog , then call DoModal member function. |
При необходимости можно создать диалоговое окно из созданного шаблона диалогового окна в памяти , а не из ресурса шаблона диалогового окна. You can, if you want, create your dialog box from an in-memory dialog template that you have constructed rather than from a dialog template resource. Однако это дополнительная тема. This is an advanced topic, however.
Диалоговые окна в Windows Forms Dialog Boxes in Windows Forms
Диалоговые окна используются для взаимодействия с пользователем и получения информации. Dialog boxes are used to interact with the user and retrieve information. Проще говоря, диалоговое окно представляет собой форму со значением ее свойства перечисления FormBorderStyle, установленным в FixedDialog . In simple terms, a dialog box is a form with its FormBorderStyle enumeration property set to FixedDialog . Пользовательские диалоговые окна можно создавать с помощью конструктор Windows Forms в Visual Studio. You can construct your own custom dialog boxes by using the Windows Forms Designer in Visual Studio. Для настройки диалоговых окон под конкретные потребности можно добавить элементы управления, такие как Label , Textbox и Button . Add controls such as Label , Textbox , and Button to customize dialog boxes to your specific needs. .NET Framework также содержит предопределенные диалоговые окна, такие как Открытие файлов и окна сообщений, которые можно адаптировать для собственных приложений. The .NET Framework also includes predefined dialog boxes, such as File Open and message boxes, which you can adapt for your own applications. Дополнительные сведения см. в разделе элементы управления и компоненты диалоговых окон. For more information, see Dialog-Box Controls and Components.
в этом разделе In This Section
Связанные разделы Related Sections
Элементы управления и компоненты диалоговых окон Dialog-Box Controls and Components
Список стандартных элементов управления диалоговых окон. Lists the predefined dialog box controls.
Изменение внешнего вида Windows Forms Changing the Appearance of Windows Forms
Содержит ссылки на разделы, описывающие, как изменить внешний вид приложений Windows Forms. Contains links to topics that describe how to change the appearance of Windows Forms applications.
Общие сведения об элементе управления TabControl TabControl Control Overview
Объясняется, как включить элемент управления «Вкладка» в диалоговое окно. Explains how you incorporate the tab control into a dialog box.
Как создавать диалоговые окна в Windows?
Как создавать диалоговые окна с помощью VBScript? Всем привет, в этом уроке я вам покажу, как быстро создавать диалоговые окна в Windows, с помощью которых мы так часто подшучиваем над своими коллегами. Я представлю небольшой обзор команд с пояснениями для того, чтобы вы не просто копировали диалоговые окна с сайта, а смогли сами импровизировать, одновременно обучаясь. Это будет знакомый вам по предыдущим компьютерным приколам скриптовый язык VBScript, и всё, что нам как всегда понадобится, это простой Блокнот, который мы, после заполнения кода, будем сохранять в укромном месте с расширением .vbs.
VBScript – это простой язык программирования, исполняемый в системе сценарием Windows Script Host. Легко кодируется в Блокноте, а лучше в специальных текстовых редакторах с расширенными возможностями, как например, AkelPad или Notepad ++ (они, в отличие от встроенного Блокнота, понимают русскую кодировку; выберите Кириллицу – Windows-1251). Именно эта связка сценария и скрипта используется Windows для того, чтобы создавать диалоговые окна . Это гораздо проще, чем использовать такие языки как С и С ++. Однако подробное знакомство с VBScript задачей настоящей статьи не ставилось; здесь я лишь приведу ряд конкретных примеров того как создавать диалоговые окна с более-менее осмысленным для читающего содержанием и вариантами развития событий по результатам действий.
Как создавать диалоговые окна с ошибкой?
Итак, создадим простое диалоговое окно с двумя кнопками. И создадим окно с псевдоошибкой. Откроем текстовый редактор, и создадим сообщение, в котором:
Кавычки и скобки обязательны. Значок “+” позволяет использовать в одном скрипте множественные функции окна. В поле «содержание ошибки» вы можете написать любое сообщение, которое впоследствии прочитает пользователь. А в поле «автор ошибки» напишите того, кто это сообщение якобы пришлёт. Ими могут быть сама система Windows, или сосед по офису. А может быть директор или администратор. Решать опять же вам. Останавливаться не буду, идём дальше. Вот каким будут выглядеть диалоговые окна после того, как вы сохраните документ в формате .vbs.
Поле «5+16» приказывает системе создавать диалоговые окна с ярлыком критической ошибки и двумя кнопками. Это, как видно, кнопки «повтор» и «отмена». Но как вы уже поняли, можно создавать диалоговые окна и с другими настройкам, и всё это благодаря комбинации цифр или чисел. Это – числовые выражения постоянных, отвечающие за выводимые кнопки, значки и режимы окна. Подробнее смотрим ниже:
Нажатие кнопок для указанного кода, и, конечно, числовых комбинаций ни к чему не приведёт, но вы в силах будете указать системе, сколько раз те или иные сообщения будут появляться. Для этого просмотрите статью Множественные сообщения об ошибке. Если понадобится перенести строки в диалоговых окнах, можно воспользоваться написанием скрипта в формате:
Диалоговые окна VBS: множество постоянных и переменных.
В простейшем написании скрипта именно знак “+” позволит применять сразу несколько параметров в одном скрипте. Например, для написания окна типа:
Просто повторите скрипт так:
Кстати, появление окна можно запустить по кругу, указав в скрипте команду на запуск его же по нажатию на любую из кнопок:
где скрипт.vbs и есть тот самый скрипт, лежащий, скажем, на Рабочем столе (C:\Users\1\Desktop\). При этом избавиться от окна можно будет только через Диспетчер задач. Скрипт может также содержать и какую-то другую одну или несколько команд. Например, пара вводимых переменных не просто создаст интерактивный диалог, но запустит программу. Например, браузер. Ну, или не запустит:
Создание модальных диалоговых окон и управление ими Create and manage modal dialog boxes
При создании модального диалогового окна в Visual Studio необходимо убедиться, что родительское окно диалогового окна отключено во время отображения диалогового окна, а затем снова включить родительское окно после закрытия диалогового окна. When you create a modal dialog box inside Visual Studio, you must make sure that the parent window of the dialog box is disabled while the dialog box is displayed, then re-enable the parent window after the dialog box is closed. Если этого не сделать, может появиться сообщение об ошибке: Microsoft Visual Studio не может завершить работу, так как открыто модальное диалоговое окно. Закройте активное диалоговое окно и повторите попытку. If you do not do so, you may receive the error: Microsoft Visual Studio cannot shut down because a modal dialog is active. Close the active dialog and try again.
Это делается двумя способами. There are two ways of doing this. Рекомендуемый способ, если имеется диалоговое окно WPF, является производным от DialogWindow , а затем вызывается ShowModal для вывода диалогового окна. The recommended way, if you have a WPF dialog box, is to derive it from DialogWindow, and then call ShowModal to display the dialog box. В этом случае нет необходимости управлять модальным состоянием родительского окна. If you do this, you do not need to manage the modal state of the parent window.
Если диалоговое окно не является WPF или по какой-либо другой причине не удается создать класс диалогового окна из DialogWindow , необходимо получить родительский элемент диалогового окна, вызвав GetDialogOwnerHwnd метод и самостоятельно управлять модальным состоянием. для этого EnableModeless перед отображением диалогового окна вызовите его с параметром 0 (false) и снова вызовите метод с параметром 1 (true) после закрытия диалогового окна. If your dialog box is not WPF, or for some other reason you cannot derive your dialog box class from DialogWindow, then you must get the parent of the dialog box by calling GetDialogOwnerHwnd and manage the modal state yourself, by calling the EnableModeless method with a parameter of 0 (false) before displaying the dialog box and calling the method again with a parameter of 1 (true) after closing the dialog box.
Создание диалогового окна, производного от Диалогвиндов Create a dialog box derived from DialogWindow
Создайте проект VSIX с именем опендиалогтест и добавьте команду меню с именем опендиалог. Create a VSIX project named OpenDialogTest and add a menu command named OpenDialog. Дополнительные сведения о том, как это сделать, см. в разделе Создание расширения с помощью команды меню. For more information about how to do this, see Create an extension with a menu command.
Чтобы использовать DialogWindow класс, необходимо добавить ссылки на следующие сборки (на вкладке «платформа» диалогового окна » Добавление ссылки «): To use the DialogWindow class, you must add references to the following assemblies (in the Framework tab of the Add Reference dialog box):
В опендиалог. CS добавьте следующую using инструкцию: In OpenDialog.cs, add the following using statement:
Объявите класс с именем TestDialogWindow , производным от DialogWindow : Declare a class named TestDialogWindow that derives from DialogWindow:
Чтобы можно было максимально увеличить и развернуть диалоговое окно, задайте HasMaximizeButton для параметра и значение HasMinimizeButton true: To be able to minimize and maximize the dialog box, set HasMaximizeButton and HasMinimizeButton to true:
В OpenDialog.ShowMessageBox методе замените существующий код следующим: In the OpenDialog.ShowMessageBox method, replace the existing code with the following:
Выполните сборку и запуск приложения. Build and run the application. Должен отобразиться экспериментальный экземпляр Visual Studio. The experimental instance of Visual Studio should appear. В меню Сервис экспериментального экземпляра должна отобразиться команда с именем Invoke опендиалог. On the Tools menu of the experimental instance you should see a command named Invoke OpenDialog. При нажатии этой команды должно отобразиться диалоговое окно. When you click this command, you should see the dialog window. Вы сможете максимально увеличить и развернуть окно. You should be able to minimize and maximize the window.
Создание и управление диалоговым окном, не производным от Диалогвиндов Create and manage a dialog box not derived from DialogWindow
Для этой процедуры можно использовать решение опендиалогтест , созданное в предыдущей процедуре, с теми же ссылками на сборки. For this procedure, you can use the OpenDialogTest solution you created in the previous procedure, with the same assembly references.
Добавьте следующие using объявления: Add the following using declarations:
Создайте класс с именем TestDialogWindow2 , производным от Window : Create a class named TestDialogWindow2 that derives from Window:
Добавьте закрытую ссылку на IVsUIShell : Add a private reference to IVsUIShell:
Добавьте конструктор, который задает ссылку на IVsUIShell : Add a constructor that sets the reference to IVsUIShell:
В OpenDialog.ShowMessageBox методе замените существующий код следующим: In the OpenDialog.ShowMessageBox method, replace the existing code with the following:
Выполните сборку и запуск приложения. Build and run the application. В меню Сервис должна отобразиться команда с именем Invoke опендиалог. On the Tools menu you should see a command named Invoke OpenDialog. При нажатии этой команды должно отобразиться диалоговое окно. When you click this command, you should see the dialog window.
Создание настраиваемого диалогового окна Creating a Custom Dialog Box
Для создания настраиваемого диалогового окна используйте указанную ниже процедуру. Use the following procedure to create a custom dialog box:
В меню Вставка в редакторе Visual Basic выберите элемент UserForm. On the Insert menu in the Visual Basic Editor, click UserForm.
Найдите элемент управления, который вы хотите добавить, на панели элементов и перетащите его на форму. Find the control you want to add in the Toolbox and drag the control onto the form.
Щелкните правой кнопкой мыши элемент управления в режиме конструктора и выберите пункт Свойства для отображения окна свойства . Right-click a control in design mode and click Properties to display the Properties window.
Вы можете инициализировать элементы управления в процедуре перед отображением формы или добавить код в событие инициализации формы. You can initialize controls in a procedure before you show a form, or you can add code to the Initialize event of the form.
У всех элементов управления есть предопределенный набор событий. All controls have a predefined set of events. Например, кнопка содержит событие Click , которое возникает, когда пользователь нажимает кнопку. For example, a command button has a Click event that occurs when the user clicks the command button. Можно создать процедуры обработки событий, выполняемые при возникновении событий. You can write event procedures that run when the events occur.
Используйте метод Showдля отображения пользовательской формы. Use the Showmethod to display a UserForm.
Некоторые свойства можно присвоить во время выполнения. Some properties can be set at run time. Значения, присваиваемые пользователем для элементов управления в диалоговом окне, будут потеряны при его закрытии. Values the user sets for controls in the dialog box are lost when the dialog box is closed.
Поддержка и обратная связь Support and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.