Алгоритм этого примера сформулируем так: на первой (главной) форме: в первое окно вводим первый сомножитель; во второе окно вводим второй сомножитель; щёлкаем по кнопке со знаком равенства; на появившейся второй форме (с пустыми тремя окнами) щёлкаем кнопку OK, после чего во всех трёх окнах мы увидим числа. Проверяем (контролируем) правильность вывода программой двух сомножителей в первые два окна второй формы (эти значения мы просто передадим с первой формы и подробно объясним, как это делается); анализируем результат умножения, который мы увидим в третьем окне.
Кратко, чтобы не повторяться (более подробно приведено выше и в [Литература]), опишем создание проекта для нового приложения-диалога. В VS щёлкаем значок New Project (или выбираем File, New, Project). В панели New Projects в окне Project Types выбираем тип проекта Visual Basic, Windows, в окне Templates проверяем, что выделено (по умолчанию) Windows Forms Application, в окне Name записываем имя проекта, например, Calculator2_2 (первая цифра 2 означает второй вариант калькулятора, а вторая цифра 2 – на двух формах). Щёлкаем OK. В ответ Visual Basic создаёт проект нашего приложения и выводит рабочий стол с формой Form1(аналогично форме в предыдущей главе). По разработанной выше методике осуществляем визуальное проектирование формы (рис. 3.1) и вводим элементы управления (рамку группы GroupBox, окна TextBox, кнопки Button, тексты Label) и компонент таймер (свойства таймера Timer: Enabled – True; значение Interval, например, оставляем по умолчанию, равным 100).
Рис. 3.1. Form1 в режиме выполнения.
3.2. Проектирование следующей формы
Для ввода в проект новой формы, в меню Project выбираем Add Windows Form, в панели Add New Item щёлкаем кнопку Add (или Open). В ответ Visual Basic выводит рабочий стол с новой формой Form2 и добавляет в панель Solution Explorer новый пункт Form2.vb. Аналогично, как первую, проектируем вторую форму (рис. 3.2). По этой схеме можно добавлять и большее количество форм, сколько необходимо для каждого конкретного приложения.
Рис. 3.2. Form2 в режиме выполнения.
3.3. Код программы
Дважды щёлкаем кнопку “=” на форме Form1 в режиме проектирования. Появившийся шаблон (после записи нашего кода) принимает вид следующей процедуры.
Листинг 3.1. Процедура Button1_Click с нашим кодом для первой формы.
Текст программы опубликован в предыдущем Издании данной книги.
Дважды щёлкаем кнопку OK на Form2. Перед появившимся шаблоном объявляем две открытые глобальные переменные C и D, а внутри этого шаблона записываем наш код, после чего шаблон принимает вид следующей процедуры.
Листинг 3.2. Строка и процедура Button1_Click с нашим кодом для Form2.
Текст программы опубликован в предыдущем Издании данной книги.
Таких локальных переменных, как A и B, и, соответственно, глобальных переменных C и D, в общем случае, мы записываем попарно столько, сколько на первой форме имеется окон TextBox, из которых мы будем передавать значения на другую форму. Переменные F, G можно не вводить (мы их ввели для наглядности) и заменить их на C, D. Отметим, что мы разработали несколько вариантов кода для передачи данных с одной формы на другую, но в этой книге приводим только один вариант (листинги 3.1 и 3.2), как наиболее простой. Другие варианты кода даны и подробно объяснены в наших книгах [Литература].
3.4. Методика разработки анимации в виде бегущей строки
На основании разработанной в предыдущей главе методики создания анимационного заголовка формы в данной главе мы разработаем методику создания бегущей строки любого текста, как в заголовке формы, так и внутри какого-либо элемента управления. Эту методику опишем на примерах двух вариантов подвижного заголовка, а именно: бегущий слева – направо заголовок первой формы; бегущий справа – налево заголовок следующей формы. Алгоритм бегущего слева – направо заголовка первой форме формулируем так: начиная с первой буквы, поэтапно появляются буквы заголовка (по одной букве) с заданным нами в панели Properties интервалом времени Interval; после появления всех букв заголовка он исчезает, и цикл поэтапного (побуквенного) вывода заголовка повторяется. Для программной реализации этого алгоритма дважды щёлкаем значок для компонента Timer ниже первой формы в режиме проектирования. Появляется файл Form1.vb с шаблоном метода Timer1_Tick для обработки события Tick, периодически (с заданным интервалом) возбуждаемого объектом (таймером) Timer. Этот автоматически генерируемый шаблон мы уже приводили выше. Здесь мы будем давать лишь наш код, который следует записать в этот шаблон.
Листинг 3.3. Код для бегущего слева – направо заголовка.
Текст программы опубликован в предыдущем Издании данной книги.