1) Создать новый проект с именем Проект-5-1-3.
Автоматически будет создана форма Form1.
2) Чтобы добавить в проект еще одну форму, необходимо поступить так же, как при добавлении модуля, но выбирая при этом элемент Windows Form в окне
Добавить новый элемент (Add New Item).
После этого в окне Обозреватель решений (Solution Explorer) появится информация о том, что в проект добавлена форма Form2.
3) Запустить проект на выполнение.
На экране отобразится Form1, а вторая нет.
Обратите внимание, что в качестве стартовой формы можно выбрать любую в окне Свойства Проекта-5-1-3, щелкнув на элементе главного меню Проект и выполнив команду Свойства: Проекта-5.1-3.
4) Разместить на формах элементы управления (кнопки и одно текстовое поле), как показано на рис. 5.1-6 и рис. 5.1-7.
Рис. 5.1-6 Рис. 5.1-7
5) Добавить в проект стандартный модуль.
6) Поместить в окна кода модуля и обеих форм программный код (рис. 5.1-8- 5.1-10).
Рис. 5.1-8
Рис. 5.1-9
Рис. 5.1-10
Проанализируем вышеприведенный программный код.
Прежде всего, несколько слов о том, видны ли модульные переменные F1 и F2 из других модулей. Если они объявлены, как обычно, словом Dim или Private, то не видны, а если словом Public- то видны.
Модули, как известно, используются в качестве общедоступного конт е йнера для переменных, констант, процедур, функций и других элементов VB. В нашем случае модуль используется для объявления двух общедоступных переменных: F1 и F2. Переменная F1 объявляется как объект класса Form1. Это значит, что после загрузки формы Form1 мы хотим к ней обращаться по имени F1. С этой же целью в процедуру Form1_Load() вставлен оператор F1= Me, что позволяет ссылаться переменной F1 на этот «экземпляр» формы.
После запуска проекта форма Form1 появляется на экране. Чтобы появилась и форма Form2, необходимо нажать кнопку Button3. Оператор F2=Form2 или F2=New порождает форму Form1 как объект класса Form2. А чтобы форма стала видна, должен выполниться оператор F2.Show().
Теперь на экране обе формы, и можно работать с каждой из них, нажимая кнопки и вводя текст в текстовые поля.
Посмотрим на содержимое процедур Button1_Click(…) в обоих окнах кода. Первая строка обеих процедур красит своего хозяина, вторая - соседа. Таким образом, в каждом окне кода можно, как обычно, писать операторы, приказывающие что-то сделать в форме-хозяине данного окна, а можно с таким же успехом писать операторы, приказывающие что-то сделать в любой другой форме проекта. Чтобы VB понимал, о какой форме идет речь, перед именем свойства, принадлежащего чужой форме, нужно писать имя этой формы (в нашем случае F1 или F2) с точкой. Если же форма своя, то вместо имени хозяина можно писать слово Me или вообще ничего не писать. Так, в процедуре Button1_Click(…) первой формы вместо
Me.BackColor = Color.Blue ‘ можно написать F1.BackColor = Color.Blue ‘или просто BackColor = Color.Blue |
Теперь посмотрите на содержимое процедур Button2_Click(…) в обоих окнах кода. Очевидно, что первая строка обеих процедур выводит текст в текстовое поле TextBox1своего хозяина, вторая - в текстовое поле TextBox1 соседа. Третья строка обеих процедур при помощи метода Focus(), принадлежащего соседу, переводит фокус на соседа. Таким образом, можно обращаться не только к свойствам чужой формы, но и к ее элементам управления, и к методам. К ним тоже применимо соглашение об имени хозяина с точкой.
Рассмотрим структуру проекта Проект-5.1-3. Ее можно увидеть в окне Обозреватель решений (Solution Explorer) (рис. 5.1-11).
Рис. 5.1-11
Строки окна Обозреватель решений отражают тот факт, что проект Проект-5.1-3 состоит из трех модулей: формы Form1, формы Form2 и стандартного модуля Module1, причем каждый из трех упомянутых модулей сохраняется в своем файле.
Щелкая в окне Обозреватель решений по нужному модулю, а затем (для форм) по одной из двух кнопок слева на панели окна Перейти к коду и Открыть в конструкторе (View Code и View Designer), мы можем удобно переключаться между различными окнами модулей.
Щелкая правой клавишей мыши в окне Обозреватель решений по нужному модулю, а затем в открывшемся контекстном меню выбирая нужный пункт, вы можете этот модуль переименовывать (Rename), копировать (Сору), вырезать (Cut), удалять из проекта (Exclude From Project), удалять с диска (Delete), просматривать и изменять его свойства (Properties). Обратите внимание, что переименовав форму в окне свойств формы, вы не сможете запустить проект, если он с этой формы стартует. Вам понадобится зайти в окно Проект-5.1-3 Properties.