Створіть новий проект. Нехай на головній формі (наприклад, Form1
) є кнопка button1
, при клацанні якої має відкриватися інша форма. Щоб реалізувати це:
1. Додайте до свого проекту нову форму. Для цього у вікні Solution Explorer клацніть ЛКМ і виберіть Add/New Item.
2. У вікні, що з’явиться:
- у розділі Categories оберіть – UI;
- у розділі Templates оберіть – Windows Form;
- у полі Name наберіть ім’я створюваної форми (наприклад, Form2);
- у полі Location можна вказати папку для зберігання файлів нової форми, якщо не влаштовує запропонована системою;
- клацніть Add.
3. Відкриється вікно дизайну форми (наприклад, Form2.h [Design]). Тут можна додати на нову форму необхідні компоненти і налаштувати їх дію.
4. Додайте на початку файлу Form1.h рядок:
#include "Form2.h"
Цим самим буде створено доступ до даних, описаних у файлі Form2.h, в тому числі й до класу, що описує форму Form2
.
5. Перейдіть до вікна дизайну головної форми Form1.h [Design] і двічі клацніть кнопку button1
. Після цього до процедури-обробника для кнопки додайте такі рядки:
Form2^ fff52 = gcnew Form2;
fff52->ShowDialog();
У першому з них оголошується і створюється новий екземпляр класу Form2
з ім’ям fff52
(звичайно, ім’я новій формі варто дати більш інформативне :). У другому рядку записаний виклик методу ShowDialog
для щойно створеного об’єкту fff52
.
Особливістю методу ShowDialog
є те, що форма Form1
, з якої був здійснений виклик іншої ( Form2
), блокується до моменту закривання цієї форми ( Form2
). Якщо така поведінка не потрібна, тобто треба працювати одночасно з двома формами, слід відкивати другу форму викликом методу Show
:
fff52->Show();
6. Запустіть програму і перевірте її працездатність.
Завдання
Порівняйте "поведінку" програми при виведенні другого вікна спочатку методом ShowDialog, а потім - методом Show. Перевірте, як в цих випадках кнопка button1
реагує на повторне натискання при відкритому вікні Form2
).
Интернет реклама