- Form.Modal property (Access)
- Syntax
- Remarks
- Support and feedback
- Form. Modal Свойство
- Определение
- Значение свойства
- Примеры
- Комментарии
- Свойство Form. Modal (Access) Form.Modal property (Access)
- Синтаксис Syntax
- Примечания Remarks
- Поддержка и обратная связь Support and feedback
- BestProg
- Пример создания немодальной формы в Windows Forms приложении. Модальные и немодальные окна
- Содержание
Form.Modal property (Access)
You can use the Modal property to specify whether a form opens as a modal window. When a form opens as a modal window, you must close the window before you can move the focus to another object. Read/write Boolean.
Syntax
expression.Modal
expression A variable that represents a Form object.
Remarks
The Modal property uses the following settings.
Setting | Visual Basic | Description |
---|---|---|
Yes | True | The form or report opens as a modal window. |
No | False | (Default) The form opens as a non-modal window. |
When you open a modal window, other windows in Microsoft Access are disabled until you close the form (although you can switch to windows in other applications). To disable menus and toolbars in addition to other windows, set both the Modal and PopUp properties to Yes.
You can use the BorderStyle property to specify the kind of border a form will have. Typically, modal forms have the BorderStyle property set to Dialog.
You can use the Modal, PopUp, and BorderStyle properties to create a custom dialog box. You can set Modal to Yes, PopUp to Yes, and BorderStyle to Dialog for custom dialog boxes.
Setting the Modal property to Yes makes the form modal only when you:
- Open it in Form view from the Database window.
- Open it in Form view by using a macro or Visual Basic.
- Switch from Design view to Form view.
When the form is modal, you can’t switch to Datasheet view from Form view, although you can switch to Design view and then to Datasheet view.
The form isn’t modal in Design view or Datasheet view and also isn’t modal if you switch from Datasheet view to Form view.
You can use the Dialog setting of the WindowMode action argument of the OpenForm action to open a form with its Modal and PopUp properties set to Yes.
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Form. Modal Свойство
Определение
Возвращает значение, указывающее, отображается ли форма как модальная. Gets a value indicating whether this form is displayed modally.
Значение свойства
Значение true , если форма отображается как модальная; в противном случае — false . true if the form is displayed modally; otherwise, false .
Примеры
В следующем примере свойство используется Modal для определения, отображается ли форма как модальная форма. The following example uses the Modal property to determine if a form is displayed as a modal form. Если это не так, FormBorderStyle TopLevel Свойства и изменяются, чтобы форма стала формой не верхнего уровня с границей окна инструментов. If it is not the FormBorderStyle and TopLevel properties are changed to make the form a non-top-level form with a tool window border.
Комментарии
При отображении формы в модальном режиме входные данные (нажатие клавиши или мыши) не могут быть выполнены, за исключением объектов в модальной форме. When a form is displayed modally, no input (keyboard or mouse click) can occur except to objects on the modal form. Программа должна скрывать или закрывать модальную форму (обычно в ответ на какое-либо действие пользователя), прежде чем может произойти ввод в другую форму. The program must hide or close a modal form (usually in response to some user action) before input to another form can occur. Формы, которые отображаются модально, обычно используются в качестве диалоговых окон в приложении. Forms that are displayed modally are typically used as dialog boxes in an application.
С помощью этого свойства можно определить, отображается ли форма, полученная из метода или свойства, модальной. You can use this property to determine whether a form that you have obtained from a method or property has been displayed modally.
Чтобы отобразить форму в модальном режиме, используйте ShowDialog метод. To display a form modally use the ShowDialog method.
Свойство Form. Modal (Access) Form.Modal property (Access)
С помощью модального свойства можно указать, будет ли форма открываться в виде модального окна. You can use the Modal property to specify whether a form opens as a modal window. Когда форма открывается в виде модального окна, необходимо закрыть окно, прежде чем можно будет переместить фокус на другой объект. When a form opens as a modal window, you must close the window before you can move the focus to another object. Для чтения и записи, Boolean. Read/write Boolean.
Синтаксис Syntax
Expression. Модальное окно expression.Modal
выражение: переменная, представляющая объект Form. expression A variable that represents a Form object.
Примечания Remarks
Модальное свойство использует указанные ниже параметры. The Modal property uses the following settings.
Параметр Setting | Visual Basic Visual Basic | Описание Description |
---|---|---|
Да Yes | True True | Форма или отчет откроется в виде модального окна. The form or report opens as a modal window. |
Нет No | False False | Умолчани Форма откроется в виде немодального окна. (Default) The form opens as a non-modal window. |
Когда вы открываете модальное окно, другие окна в Microsoft Access отключаются до закрытия формы (несмотря на то, что вы можете переключиться на Windows в других приложениях). When you open a modal window, other windows in Microsoft Access are disabled until you close the form (although you can switch to windows in other applications). Чтобы отключить меню и панели инструментов в дополнение к другим окнам, задайте для свойств модальность и всплывающее окно значение Да. To disable menus and toolbars in addition to other windows, set both the Modal and PopUp properties to Yes.
Свойство BorderStyle можно использовать для указания вида границы формы. You can use the BorderStyle property to specify the kind of border a form will have. Обычно модальные формы имеют свойство BorderStyle , заданное в диалоговом окне. Typically, modal forms have the BorderStyle property set to Dialog.
Чтобы создать настраиваемое диалоговое окно, можно использовать свойства Modal, Popupи BorderStyle . You can use the Modal, PopUp, and BorderStyle properties to create a custom dialog box. Для модальных диалоговых окон можно установить для модальности значение «Да», » всплывающее окно» и » BorderStyle «. You can set Modal to Yes, PopUp to Yes, and BorderStyle to Dialog for custom dialog boxes.
Если присвоить свойству Modal значение «Да», форма является модальной только при выполнении следующих условий: Setting the Modal property to Yes makes the form modal only when you:
- Откройте окно базы данных в представлении формы. Open it in Form view from the Database window.
- Откройте его в режиме формы с помощью макроса или Visual Basic. Open it in Form view by using a macro or Visual Basic.
- Переключение из режима конструктора в режим формы. Switch from Design view to Form view.
Если форма является модальной, переход в режим таблицы в режиме формы невозможен, несмотря на то, что вы можете перейти в режим конструктора, а затем в режим таблицы. When the form is modal, you can’t switch to Datasheet view from Form view, although you can switch to Design view and then to Datasheet view.
Форма не является модальной в представлении конструктора или представлении таблицы, а также не является модальной при переключении из режима таблицы в представление формы. The form isn’t modal in Design view or Datasheet view and also isn’t modal if you switch from Datasheet view to Form view.
Вы можете использовать параметр Dialog диалогового окна макрокоманды виндовмоде для открытия формы, свойству модальных и всплывающих окон которых присвоено значение «Да». You can use the Dialog setting of the WindowMode action argument of the OpenForm action to open a form with its Modal and PopUp properties set to Yes.
Поддержка и обратная связь 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.
BestProg
Пример создания немодальной формы в Windows Forms приложении. Модальные и немодальные окна
Содержание
Поиск на других ресурсах:
1. Общие сведения о модальных и немодальных формах
Любая более или менее серьезная программа использует диалоговые окна для организации интерфейса с пользователем. В графическом интерфейсе операционной системы Windows различают два вида диалоговых окон:
- модальные окна;
- немодальные окна.
Модальные окна являются наиболее распространенным видом окон. Если открыто модальное окно, то чтобы попасть в основную программу, его обязательно нужно закрыть. Без закрытия модального окна невозможно перейти в программу, которая его вызвала. В программах Windows Forms возможна ситуация, когда одно модальное окно открывает другое (следующее) модальное окно. Таким образом получается цепочка вызовов.
Как правило, модальное окно содержит кнопки типа OK, Cancel (или другие), при нажатии на которые это окно закрывается.
Примером модального окна может быть команда Open… редактора Microsoft Word, которая открывает окно выбора файла. Пока не будет выбран файл или не будет нажата одна из кнопок отмены, перейти в редактор не удастся.
При открытии немодального окна, существует возможность переключаться из окна в основную программу не закрывая это окно, и, наоборот, из основной программы можно снова вернуться в немодальное окно. Но при этом, визуально немодальное окно всегда размещается над основной программой. Как правило, немодальное окно содержит одну кнопку типа Close , которая его закрывает.
Пример немодального окна – это команда «Insert Symbol» редактора Microsoft Word, которая позволяет вставлять символ в документ. Из окна вставки символа можно переключаться в основной документ и наоборот, из документа можно переходить в немодальное окно.
2. Особенности работы с немодальными окнами в Windows Forms
В технологии Windows Forms основной программе соответствует форма – экземпляр класса, унаследованного от класса Form . Также модальному или немодальному окну соответствует некоторая форма.
При работе с немодальными окнами были замечены следующие особенности:
- в немодальном окне есть одна кнопка Close , которая его закрывает;
- вызов немодального окна из главной программы происходит с помощью метода Show() класса Form (чтобы вызвать модальное окно нужно использовать метод ShowDialog() ).
В нижеследующем коде приведены примеры вызова модального и немодального окна
Как видно из вышеприведенного кода, проблемой есть способ обмена информацией между основной программой и немодальным окном. Основной программе соответствует главная форма, немодальному окну соответствует немодальная форма.
3. Способы обмена информацией между главной формой и немодальной формой
При использовании немодальных форм важным есть обмен информацией между основной программой (главной формой) и немодальной формой.
Здесь возможны две ситуации:
- передача информации из главной формы в немодальную. Эта ситуация решается без проблем, поскольку в основной форме создается экземпляр немодальной формы. Через этот экземпляр осуществляется доступ к компонентам немодальной формы стандартным способом;
- передача информации из немодальной формы в главную форму. Здесь возникает проблема: как из немодальной формы доступиться к экземпляру главной формы.
Чтобы передать данные (информацию) с немодальной формы в главную, можно использовать один из следующих способов:
- С помощью статической ссылки на главную форму. Как известно, статические переменные есть глобальными, поэтому удобно могут использоваться для обмена информацией между разными разделенными экземплярами или процессами. Имея ссылку на главную форму, можно легко обращаться к компонентам этой формы. Этот способ наиболее прост в использовании.
- С помощью механизма событий. При этом способе в немодальной форме объявляется событие, которое возникает каждый раз, когда главной форме нужно передать информацию. Тем не менее, сам обработчик этого события помещается в главной форме. Если из немодальной формы нужно передать информацию главной форме, то возникает событие. В результате, в главной форме вызывается обработчик этого события. Этот обработчик получает объект типа «немодальное диалоговое окно», который сгенерировал событие. Имея доступ к измененному объекту немодального окна, можно обновить информацию в главной форме.
- С помощью записи информации во временный файл. Как известно, файлы подобны статическим переменным. Поэтому, записав порцию информации в файл в немодальной форме, можно ее прочитать в главной форме. Этот способ не является эффективным, поскольку работает медленнее (чтение из носителей информации происходит дольше чем из оперативной памяти).
4. Пример разработки демонстрационной программы использования немодальной формы
В данной теме описывается пример создания и использования немодальной формы. Для передачи информации из немодальной формы в главную форму используется способ использования статической ссылки на главную форму. При этом способе, перед вызовом немодальной формы запоминается значение экземпляра главной формы в статической переменной. Если нужно передать информацию из немодальной формы в главную форму, то происходит обращение к статической переменной.
Демонстрационная программа состоит из двух форм: главной и немодальной. Из главной формы вызывается немодальная форма. Из немодальной формы происходит копирование информации из поля ввода в соответствующее поле ввода главной формы.
4.1. Создать проект типа Windows Forms
После создания проекта по шаблону Windows Forms автоматически создается главная форма, экземпляр которой называется Form1 .
4.2. Разработка основной формы
Создать основную форму и разместить на ней следующие элементы управления:
- элемент управления типа Button . Создается экземпляр кнопки с именем button1 ;
- элемент управления типа Label . Создается экземпляр метки с именем label1 ;
- элемент управления типа TextBox . Создается экземпляр поля ввода с именем textBox1 .
Настроить свойства формы и элементов управления как показано на рисунке 1:
- в элементе управления Form1 свойство Text = «Main Form» (в дальнейшем Form1.Text );
- button1.Text = «Show Modeless Form» ;
- label1.Text = «Text» ;
- textBox1.Modifiers = Public . Значение Public необходимо, чтобы этот элемент управления был видим из немодальной формы.
Также нужно откорректировать размеры главной формы.
После настройки главная форма будет иметь вид как изображено на рисунке 1.
Рисунок 1. Главная форма программы
4.3. Создать новую форму Form2
Создание новой формы осуществляется стандартным способом с помощью команд
В окне, которое откроется, нужно указать шаблон «Form (Windows Forms)» . Имя файла оставить по умолчанию Form2.cs. В результате будет создан экземпляр формы с именем Form2.
4.4. Проектирование формы Form2
Разместить на форме Form2 следующие элементы управления:
- один элемент управления типа Label . Будет создан объект с именем label1 ;
- два элемента управления типа Button . Будет создано два объекта с именами button1 , button2 ;
- один элемент управления типа TextBox . Будет создан экземпляр с именем textBox1 .
Настроить следующие свойства элементов управления формы Form2 :
- Form2.Text = «Modeless Form» ;
- button1.Text = «Copy to Form1» ;
- button2.Text = «Close» ;
- label1.Text = «Text» ;
- textBox1.Modifiers = Public .
После настройки немодальная форма будет иметь вид как изображено на рисунке 2.
Рисунок 2. Немодальная форма Form2 после настройки элементов управления
4.5. Ввод статической ссылки на форму Form1
В тексте класса Form1 нужно ввести статическую переменную с именем form1:
Статическая переменная имеет тип Control . Все элементы управления унаследованы из класса Control . Это же касается и формы.
4.6. Программирование обработчика события Click элемента управления button1 формы Form1
При нажатии на кнопке button1 ( Show Modeless Form ) открывается окно немодальной формы и в поле ввода немодальной формы ( Form2.textBox1.Text ) вписывается текст из поля ввода главной формы ( Form1.textBox1.Text ).
Чтобы выполнить этот пункт сначала нужно активировать форму Form1 . Затем нужно запрограммировать событие Click элемента управления button1 , размещенного на форме Form1 .
Текст обработчика события следующий:
4.7. Программирование обработчика события Click кнопки button1 формы Form2
При нажатии на кнопке button1 ( Copy to Form1 ) текст из поля ввода немодальной формы ( Form2.textBox1.Text ) должен скопироваться в соответствующее поле ввода главной формы ( Form1.textBox1.Text ).
Сначала нужно активировать форму Form2 и сформировать обработчик события Click элемента управления button1 .
Текст обработчика события следующий:
В обработчике события на основе статической ссылки form1 происходит циклический поиск элемента управления типа TextBox с именем textBox1 (на всякий случай, если в главной форме несколько textBox-ов).
4.8. Программирование обработчика события Click элемента управления button2
При нажатии на кнопке button2 нужно закрыть немодальную форму. Текст соответствующего обработчика следующий:
Как видно из вышеприведенного кода, немодальная форма закрывается точно так же как и модальная.
4.9. Запуск программы на выполнение
После прохождения инструкции, можно запускать программу. Во время выполнения программы с помощью кнопки «Show Modeless Form» можно вызвать несколько немодальных форм из главной формы (рисунок 3). При этом из второстепенных немодальных форм можно передавать информацию в главную программу поочередно.
Рисунок 3. Случай, когда из главной формы вызваны 4 немодальных формы