Усложняем проект
Закройте проект ошибок. Скопируйте папку проекта «Красим форму» тут же, рядышком с собой внутри папки Visual Studio Projects. Переименуйте как-нибудь скопированную папку, например, «Красим форму 1». Над копией будем продолжать работу. Откройте проект из этой папки. Это можно сделать в Windows двойным щелчком по файлу проекта или решения. Обратите внимание, что от изменения названия папки имя проекта не изменилось.
Усложним проект. Пусть при щелчке по кнопке Button1 происходит что-нибудь еще, кроме изменения ширины полосы прокрутки, а именно три вещи:
- В текстовом поле TextBox1 появляется текст Ширина полосы = 100
- Исчезает второй элемент переключателя (RadioButton2).
- Вторая кнопка (Button2) окрашивается в желтый цвет.
Для этого достаточно в процедуру добавить 3 оператора. Начнем по порядку.
Меняем текст в TextBox1. У текстового поля TextBox1 есть свойство Text, значением которого является текст в этом поле. Поэтому добавим в процедуру оператор
TextBox1.Text = "Ширина полосы = 100"
Запомните: В окне кода значение свойства Text для текстового поля и других объектов должно браться в двойные кавычки.
Привыкайте к похожим обозначениям в VB разных вещей (у нас это TextBox1 и Text) и будьте внимательны. Наш оператор можно перевести так: Содержимое текстового поля TextBox1 сделать таким – Ширина полосы = 100.
Не думайте, что смысл слов Ширина полосы = 100 что-то значит для компьютера. Во-первых, он по-русски не понимает, а во-вторых, что бы ни было написано внутри двойных кавычек, он в это не вдумывается и как приказ не воспринимает, а просто воспроизводит в текстовом поле. Чтобы проверить, можете написать внутри кавычек любую абракадабру и запустить проект.
Вот что у нас должно получиться:
Public Class Form1
Inherits System.Windows.Forms.Form
Windows Form Designer generated code
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
HScrollBar1.Width = 100
TextBox1.Text = "Ширина полосы = 100"
End Sub
End Class
Для экономии места по вертикали я стер здесь пустые строки. И вам тоже не возбраняется.
Запустим проект. Нажмем кнопку Button1. При щелчке по кнопке Button1 VB выполнит по порядку все операторы процедуры между строками Private Sub Button1… и End Sub. Убедимся, что оба оператора выполнились. Поскольку компьютер работает очень быстро, нам будет казаться, что оба оператора выполнились одновременно. Но это не так: сначала поменялась ширина полосы прокрутки, а уж затем текст в текстовом поле.
Измените вручную текст в текстовом поле. Снова нажмите кнопку Button1. Что произошло? Завершите выполнение проекта.
Исчезает RadioButton2. Для исчезновения элемента RadioButton2 достаточно дописать в процедуру такой оператор:
RadioButton2.Hide()
Пояснение: Кроме свойств, объекты обладают и так называемыми методами. Метод – это то, что данный объект умеет делать. Вспомним пример с игрушечной железной дорогой. Там были объекты: паровозы, светофоры, стрелочники и т.п. У паровоза могут быть такие методы: ехать, гудеть, выпускать пар … У светофора – зажигать красный, зажигать зеленый … У стрелочника – переводить стрелку, петь песни … Команды паровозу и стрелочнику могли бы звучать так:
Паровоз . гуди
Стрелочник . переводи стрелку
Поскольку «Hide» по-английски означает «прятаться», то оператор RadioButton2.Hide() означает не что иное, как приказ элементу RadioButton2 спрятаться, сделаться невидимым. Говорят, что выполнился метод Hide объекта RadioButton2. На скобки ( ) пока внимания не обращаем. О них позже.
Многие методы называют функциями. Но и об этом тоже позже.
Запишите оператор, запустите проект, проверьте его работу.
Красим Button2. Теперь нам нужно покрасить кнопку Button2 в желтый цвет. Приведу аналогию. Чтобы покрасить в желтый цвет газету, мы бы написали так:
Газета . цвет = желтый
Однако это было бы неточно, так как слово «желтый» может иметь переносный смысл – «желтая пресса». Поэтому лучше было бы написать так:
Газета . цвет бумаги = желтый
Однако и это было бы неточно, так как желтая краска из разных коробочек с красками может иметь разные оттенки. Поэтому лучше было бы написать так:
Газета . цвет бумаги = Коробка №5 . желтый
Теперь не спутаешь.
Компьютер тем более требует точности, поэтому нужный нам оператор мы пишем так:
Button2.BackColor = Color.Yellow
Пояснение: Здесь BackColor – свойство объекта Button2. Оно означает цвет поверхности кнопки. (А есть еще, например, ForeColor – цвет букв на кнопке.) Слово Yellow переводится «желтый». А слово Color, которое стоит перед ним – не что иное, как название «коробки с красками». Не путайте близкие по написанию, но абсолютно разные по смыслу слова: Color и BackColor. А также пусть не обманывает вас их буквальный перевод с английского. Не спрашивайте также меня, что значит с точки зрения VB «коробка с красками». Завтра, завтра, не сегодня!
Вот как теперь выглядит ваша процедура:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
HScrollBar1.Width
= 100
TextBox1.Text
= "Ширина полосы = 100"
RadioButton2.Hide()
Button2.BackColor
= Color.Yellow
End Sub
Запустите проект, нажмите кнопку Button1. Вы должны увидеть такую картинку (Рис. 1.20).
Рис. 1.20