С. Н. Лукин Самоучитель Том 1 (из 3) Все права защищены © 2005 Содержание Введение 5 Кому предназначена эта книга - страница 4

^ Не программа, а проект
Visual Studio .NET принадлежит к так называемым средам визуальной разработки программ. Это значит, что она берет на себя значительную часть работы по написанию скучных команд, предоставляя программисту вместо этого «собирать домик из кубиков».

Для пояснения рассмотрим аналогию. Вообразите, что вы не программу на VB пишете, а собираете на столе игрушечную железную дорогу. В вашем распоряжении находятся объекты: стол, рельсы, паровозы, вагоны, светофоры, машинисты, стрелочники и т.д. Чтобы игрушка заработала, вам нужно выполнить 3 этапа:

  1. Собрать ее вручную, то есть поместить на свои места и правильно соединить рельсы, вагоны и т.д.

  2. Наша игрушка очень интеллектуальная, то есть поведение многих объектов (таких как машинисты, стрелочники, светофоры и другие) – сложное и осуществляется по программе. Поэтому вам нужно написать для каждого из таких объектов программу поведения. Например, в программе для машиниста одна из команд может быть такой: «Если впереди на светофоре красный свет – тормози», а в программе для светофора – такой – «Если два поезда опасно сблизились – зажигай красный свет» и так далее.

  3. Запустить игрушку и посмотреть, как она работает. Если произошло крушение или что-нибудь еще пошло не так, как надо, значит или вы неправильно собрали игрушку, или написали неправильные программы, или и то и другое вместе. Вы исправляете ошибки и там и там и снова запускаете игрушку. Снова смотрите, снова исправляете. И так до тех пор, пока все не заработает нормально. Этот процесс называется отладкой.

Современный программист, работающий в средах визуальной разработки программ, выполняет те же три этапа. На 1 этапе он вручную расставляет на экране компьютера объекты, которые будут выполнять его программу, на 2 этапе пишет программу, на 3 этапе запускает ее. Что конкретно я имею в виду под расстановкой объектов, вы узнаете в следующем разделе, а сейчас остается сказать, что из-за 1 этапа работа программиста теперь напоминает работу конструктора-проектировщика и продукт работы программиста называют теперь не программой, а проектом. Хотя часто пользуются и прежним термином. Я тоже, наверное, буду их путать. Правда, обещаю, что не в ущерб смыслу.

Готовый проект будем называть приложением Windows или просто приложением. Это значит, что эта программа будет работать на компьютерах с запущенной операционной системой Windows (говорят: программа работает из-под Windows). Она не будет работать из-под других операционных систем, что вряд ли можно назвать недостатком. Таковы почти все современные программы. А у «всеядных» программ – свои минусы.

Еще один термин для готового проекта – продукт. Действительно: продукт работы программиста – продукт.
      1. ^ Первые шаги – за ручку

Лучший способ познакомиться с VB – поскорее создать и запустить какой-нибудь проект. Пусть он будет маленький и никому, кроме нас, не нужный, но зато с ним мы пройдем все этапы работы с VB. Этим мы сейчас и займемся.

Садитесь за компьютер и приступим. Без компьютера этот раздел принесет вам мало пользы. Учиться Бейсику по книжке без компьютера – все равно, что учиться кататься на велосипеде по самоучителю без велосипеда. Все, что я говорю, вы отныне должны немедленно выполнять на компьютере. Это нужно и для тренировки и еще потому, что многое, кажущееся таким очевидным в тексте, становится странным и непонятным, когда нажмешь на клавиши. К тому же не забывайте, что автор – не Господь Бог и тоже может ошибиться. Компьютер же не ошибается и всегда поймает автора за руку.

Иногда я буду прямо говорить: «Нажмите такую-то клавишу» или «Сделайте на компьютере то-то и то-то». Но чаще я буду просто излагать материал, не повторяя по сто раз, что нужно проверять на компьютере каждое мое слово. Например, я говорю, что данная процедура по такой-то причине печатает число 36, и сразу же перехожу к другой теме. Стоп! Не надо спешить за мной. Сначала проверьте, действительно ли будет напечатано 36.

Напоминаю, что если у вас нет достаточного опыта работы на компьютере, к вашим услугам Приложение 2, где вы научитесь всему, что нужно, чтобы приступить к делу.
        1. ^ Запускаем Visual Studio .NET

Как я уже писал во введении, VB входит в состав единой программы, которая называется среда программирования Visual Studio.NET и обеспечивает программисту возможность удобной разработки программ на VB и некоторых других языках. Поэтому, чтобы программировать на VB, вам нужно запустить Visual Studio.NET. Английские слова «Visual Studio» можно вольно перевести, как «Визуальная студия», то есть то место, где художник (программист) может творить свои произведения (программы) визуально (имеется в виду 1 этап – сборка вручную).

В дальнейшем вместо слов «Visual Studio .NET» я часто для краткости буду писать VS. Не путайте VS и VB. Когда я пишу VB, я имею в виду язык программирования, все то, что связано с самой программой, с правилами написания программного текста и его смыслом. Когда я пишу VS, я имею в виду среду программирования, то есть все то, что создает удобства и возможности программирования, загрузки, сохранения программ, их просмотра и настройки взаимодействия. Аналогии: VB – это бифштекс, VS – ресторан и официанты; VB – это мозг, VS – это тело; VB – это программа, VS – это компьютер. Однако, надо признаться, что не всегда удается четко сказать, где кончается VS и начинается VB.

Если VS у вас на компьютере не установлена, читайте , а если установлена, то запускайте ее следующим образом:

Нажмите на панели задач Windows кнопку «Пуск» (^ Start), в появившемся меню выберите «Программы» (Programs), затем в появившемся меню – Microsoft Visual Studio.NET, а затем в появившемся меню – снова Microsoft Visual Studio.NET. (В дальнейшем вместо словесного описания щелчков мыши в меню я для краткости буду писать так: Пуск  Программы  Microsoft Visual Studio .NET  Microsoft Visual Studio .NET).

Если вы впервые запускаете VS, то в результате запуска на экране появляется главное окно VS со стартовой страницей (Start Page). Если у вас установлена Visual Studio .NET 2003, то окно имеет примерно такой вид, как на Рис. 1 .1.



Рис. 1.1

Если у вас установлена Visual Studio .NET, то окно имеет примерно такой вид, как на Рис. 1 .2. Разница между окнами чисто внешняя.



Рис. 1.2

Если вы запускаете VS не впервые, то в главном окне может и не быть стартовой страницы или она может иметь несколько другой вид. Сейчас это не важно, стартовая страница нам пока не понадобится. В любом случае вы можете почитать о ней в .

В заголовке окна вы видите слова Microsoft Development Environment, что означает «Среда разработки программ фирмы Microsoft». Смысл этих слов такой же, что и у слов «Visual Studio».
        1. ^ Создаем проект

Теперь вам нужно сообщить компьютеру, что вы хотите создать новый проект на языке VB. Ваши действия: File  New  Project. Перед вами возникает диалоговое окно (см. Рис. 1 .3):



Рис. 1.3

В левом поле вы выбираете Visual Basic Project в знак того, что хотите создавать проект именно на языке VB. В правом поле вы выбираете Windows Application (Приложение Windows) в знак того, что собираетесь создавать обычную программу, которая должна работать на вашем настольном компьютере или ноутбуке под управлением Windows в обычном окне. В этом поле вы могли бы выбрать, например, создание программы для работы в Интернете или что-нибудь другое.

Чуть пониже, в поле ^ Name компьютер предлагает нам название вашего будущего проекта и одноименной папки, в которой он будет сохраняться – WindowsApplication1, а еще ниже, в поле Location компьютер предлагает папку, в которой будут храниться папки всех ваших будущих проектов – E:\Documents and Settings\Sergey Lukin\My Documents\Visual Studio Projects. Если вы сейчас нажмете ОК, то внутри этой папки тут же будет создана папка WindowsApplication1 и в ней немедленно появятся все необходимые файлы, которые и будут составлять ваш будущий проект.

Запомните: каждый проект состоит не из одного файла, а из нескольких файлов и папок, поэтому было бы глупо пытаться сохранять файлы и папки разных проектов «скопом» в одной папке. Они просто перемешаются. VS прекрасно это понимает и поэтому предлагает вам сохранять проект в отдельную папку. Вам остается только согласиться. Если вы согласитесь также на имя WindowsApplication1, то для следующего нового проекта VS предложит уже папку WindowsApplication2 и так далее. Все эти папки будут находиться рядышком внутри папки Visual Studio Projects, как показано на рисунке, изображающем фрагмент Проводника Windows.

Если вам не нравится папка ^ Visual Studio Projects, то вы можете выбрать другую кнопкой Browse (неопытным не рекомендую).

Но мы щелкать на ОК все равно пока не будем, так как нам нужно придумать более подходящее, чем WindowsApplication1, имя для проекта. Поскольку смысл его, как я наметил, будет заключаться в том, чтобы «покрасить» некую «форму, то и введем в поле Name название Красим форму, после чего и нажмем ОК. Проект теперь будет храниться в папке с этим названием.

Перед вами возникнет следующая картинка (Рис. 1 .4), говорящая о том, что вы можете приступать к проектированию (внешний вид картинки у вас может быть немножко другой).



Рис. 1.4

В заголовке окна вы теперь видите слова Microsoft Visual Basic.NET. Это означает, что среда разработки программ Visual Studio .NET приняла одно из своих обличий, а именно стала Средой разработки программ на VB. Если бы вы создавали проект на C++ .NET, то VS надела бы другую маску и выглядела бы немного по-другому.

Перейдите в Windows и проверьте содержимое появившейся папки ^ Красим форму. Вы видите, что ваш проект состоит из нескольких файлов и папок.

На будущее хочу предупредить, что, если до вас в VS уже кто-то работал, то он мог перенастроить среду так, что она в чем-то будет вести себя совсем по-другому, чем я написал. В этом случае, если вы наткнетесь на трудности, изучите предварительно . Во всяком случае, не рекомендую щелкать по кнопкам и пунктам меню, смысла которых вы не понимаете. Старайтесь также не отвлекаться на большое количество присутствующих на экране кнопок и окон, о которых я пока умалчиваю, чтобы не утонуть в подробностях.
        1. ^ Размещаем объекты на форме

Что на Рис. 1 .4 должно вас больше всего интересовать, так это серый прямоугольник или квадрат, расположенный на белом фоне. Он покрыт сеткой из точек и имеет заголовок Form1. Это так называемая форма. Если форму вы по какой-то причине не видите или впоследствии потеряли из виду, то в главном меню окна VS выберите View  Designer.

Что же это такое – форма? Вспомним нашу игрушечную железную дорогу. Так вот, форма – это пустой стол, тот самый стол, на котором мы эту дорогу будем собирать. Когда вы запустите проект, он станет приложением Windows, а форма станет окном Windows, в котором будет работать ваше приложение.

Обратите внимание на три белых квадратика – маркера – в правой нижней части формы. Ухватившись за них мышкой, вы можете менять размеры формы. Но таскать форму по экрану вам здесь не удастся.

Начнем работу над проектом с 1 этапа. Чтобы собрать железную дорогу, нам нужны объекты: рельсы, вагоны и т.п. Чтобы создать проект, нам тоже нужны объекты – и VB нам их предоставляет. В левой части главного окна VS мы видим значок . Поставим на него курсор мыши и, может быть, даже щелкнем. На экран выплывет слева вертикальное серое окно, на окно не похожее (Рис. 1 .5).



Рис. 1.5

Это окно Toolbox («Ящик» с элементами управления), то есть набор наиболее популярных стандартных объектов, применяемых при создании проектов на VB (это наши паровозики и вагончики). Каждый объект-элемент управления имеет свое название: кнопка, текстовое поле, таймер, графическое поле и т.п.

Если вы убрали мышку с окна Toolbox, то оно уплывет обратно, мудро освобождая дефицитное место на экране. Чтобы снова увидеть его, поставьте опять мышку на значок.

Замечание: Понятие «Объект» – центральное в VB. Оно имеет гораздо более широкий смысл, чем форма или элемент управления, но поскольку других объектов мы пока не знаем, я буду называть объектами именно их. Постепенно я буду расширять и уточнять понятие объекта.

Ну что ж, начнем сборку. Я пока не буду объяснять «зачем», а буду только объяснять «что» и «как». Поместим на форму так называемую кнопку. Для этого щелкнем в Toolbox по кнопке (Button). Мышиный курсор приобретет характерный вид крестика с кнопкой. Затем проведем мышкой внутри формы небольшую «рамочку». Что значит провести «рамочку»? Это значит поместить мышиный курсор куда-нибудь внутрь формы, нажать на левую клавишу мыши и, не отпуская клавишу, «протащить» мышь немного наискосок. При этом за курсором будет тянуться «рамочка». Отпустите мышь. На месте рамочки возникнет кнопка с надписью Button1. Впрочем, рамочку можно и не проводить, достаточно просто щелкнуть где-нибудь внутри формы.

По краям кнопки вы увидите 8 белых квадратиков - маркеров изменения размеров (Рис. 1 .5). Если щелкнуть по форме мимо кнопки, они пропадут, если снова щелкнуть по кнопке – появятся. Только не надо пока двойных щелчков (если все-таки сделаете двойной щелчок, у вас на месте прежнего откроется другое окно. В этом случае просто выберите в окне закладку Form1.vb [design] и все вернется на место. Перетащите мышкой любой из маркеров – размеры кнопки изменятся. Можно таскать кнопку по форме, если ухватиться мышью не за маркер, а за любое место внутри кнопки. Можно передвигать кнопку клавишами перемещения курсора на клавиатуре. Чтобы уничтожить кнопку, щелкните по ней правой клавишей мыши и в выскочившем контекстном меню выберите опцию Delete или нажмите клавишу стирания на клавиатуре. Проделайте все это. А теперь, если вы ее уничтожили, то снова создайте.

Аналогичным образом поместите из Toolbox на форму еще одну кнопку, а также следующие объекты: метку (Label), несколько флажков (CheckBox), несколько элементов переключателя (RadioButton), горизонтальную полосу прокрутки (HScrollBar), вертикальную полосу прокрутки (VScrollBar) и текстовое поле (TextBox). Расположите их примерно так, как в левой половине Рис. 1 .6.



Рис. 1.6

Вы обратили внимание, что текстовое поле сопротивляется увеличению своего размера по вертикали? В дальнейшем () мы преодолеем это сопротивление.

Обратите внимание на слово [design] (дизайн, проектирование) в заголовке главного окна VS. Оно говорит о том, что в настоящий момент VB находится в режиме проектирования, во время которого мы можем собирать, конструировать наш проект (1 этап) и писать для него программу (2 этап). Белое окно с формой, в котором мы выполняем конструирование, называется окном конструктора (дизайнера) форм (Windows Forms Designer).

Обратите внимание, что когда мы размещаем на форме несколько одинаковых объектов, например Button, VB надписывает их с указанием порядкового номера: Button1, Button2, Button3…
        1. ^ Пробный запуск

Запускаем. Пока мы с вами создаем то – «сами не знаем что». Ведь никакой конкретной задачи мы перед собой не поставили за исключением туманного пожелания «покрасить форму». Тем не менее, перескочим через 2 этап (составление программы) и сразу выполним 3 этап, то есть запустим наш бессмысленный проект на выполнение. Для этого щелкнем мышкой по кнопке (^ Start) на панели инструментов (не путайте панель инструментов с Toolbox – «ящиком» элементов управления) или нажмем клавишу F5.

Запустили. Исторический момент. Что мы видим? Некоторое время проект компилируется, то есть с языка VB переводится на язык близкий к машинному (подробнее, что такое компиляция, написано в Приложении 1). Через несколько секунд работы компьютера на экране появляется «еще один экземпляр» нашей формы. Это и есть наше приложение Windows, то есть запущенный, откомпилированный и работающий проект (см. правую половину Рис. 1 .6). То, что мы видим, это уже не форма, а окно приложения. Оно отличается от формы, как дочь от матери, то есть они очень похожи. Поэтому в дальнейшем я часто буду называть работающее окно нашего приложения тоже формой. Я надеюсь, вы не будете путать ее с ее родительницей в окне проектирования.

Мы видим, что наша работающая форма все-таки немного отличается от формы на этапе проектирования, из которой она родилась: пропали точки, преображенная форма потеряла связь с главным окном VS и ведет себя, как независимое окно, каковым она, в общем, и является. Для убедительности сверните главное окно VS на панель задач. Теперь форма одна царит на экране. Ее можно таскать по всему экрану, ухватившись за заголовок, и ее значок вы можете видеть на панели задач Windows. Она надлежащим образом реагирует на щелчки по кнопкам в ее правом верхнем углу. Если подвести острие курсора к краю или углу формы, то можно менять ее размеры. А вот размеры кнопок и других элементов мы не можем больше менять.

Зато теперь на кнопки можно нажимать мышкой. Нажимаем. Ничего не происходит. Естественно – мы ведь не написали программу, объясняющую компьютеру, что нужно делать при нажатии на кнопку. В текстовое поле теперь можно вводить текст и как угодно там его менять и стирать. Щелчками мыши вы можете ставить и убирать флажки (галочки) в элементах CheckBox. Щелчками мыши вы можете устанавливать переключатель в какое угодно положение из четырех. Вы можете мышкой перемещать ползунок на полосах прокрутки. Но все это без толку. Компьютер никак не реагирует, что бы вы там ни делали. Причина та же.

Итак, мы видим, что без программы наш проект не стоит ни гроша.

Если работающая форма находится на фоне какого-нибудь окна (например, главного окна VS) и вы случайно щелкнете по этому окну мышкой мимо формы, то форма пропадет из вида, так как будет загорожена этим окном. Не беда – щелчок по значку формы на панели задач Windows вернет ее на передний план.

Обратите внимание на слово [run] (бег, работа) в заголовке главного окна VS. Оно говорит о том, что в настоящий момент VB находится в режиме работы, то есть в режиме выполнения проекта (3 этап), во время которого мы ни собирать проект (1 этап), ни писать для него программу (2 этап) не можем, о чем сообщают слова [Read Only] в том же заголовке.

Завершаем. Завершим выполнение проекта кнопкой (^ Stop Debugging) на панели инструментов или щелкнув по крестику в правом верхнем углу работающей формы. VB вышел из режима [run] и вернулся в режим [design]. Теперь в проекте можно что-нибудь поменять и снова его запустить. И так далее.

Сетка. В режиме проектирования мы видим, что форма покрыта сеткой из точек. Цель у сетки двоякая. С одной стороны она помогает нам визуально оценивать положение элементов управления на форме, с другой стороны мы можем настроить VS так, чтобы очертания элементов управления располагались строго по линиям сетки. Это помогает программисту делать элементы управления одинаковыми по величине и располагать их на форме правильными рядами.
        1. ^ Пишем программу

Давайте придумаем себе задачу для нашего проекта. Пусть на экране при нажатии кнопки или, скажем, при передвижении ползунка на полосе прокрутки что-нибудь происходит. Легко сказать – пусть! Для этого нужно знать, что вообще умеет делать VB при нажатии на кнопки или при передвижении ползунков. А если даже мы это знаем, то все равно не знаем, как это приказать, то есть как правильно написать программу. Ну что ж. Программирование мы будем изучать постепенно и постепенно всему научимся, а сейчас я выберу что-нибудь самое простое и подскажу, как это делается. К компьютеру не подходите, пока я не дам знак.

Придумали оператор. Забудем пока о «покраске формы» и прикажем компьютеру для начала при нажатии кнопки Button1 сделать ширину горизонтальной полосы прокрутки равной 100 пикселям. Команда (оператор) для этого пишется так:

^ HScrollBar1.Width = 100

Разберемся, что здесь написано.

HScrollBar1 – это имя нашей горизонтальной полосы прокрутки (Его дал VB. О том, как узнавать имена объектов и изменять их, я скажу позже).

^ Width – переводится «ширина».

Смысл оператора очевиден: это приказ сделать ширину объекта HScrollBar1 равной 100.

Теперь о том, что обозначают точка и знак равенства. Пока правило такое:

Слева от точки мы записываем имя объекта, справа от точки – название его свойства, а справа от знака равенства – значение этого свойства. Точку нужно писать обязательно.

Вот аналогии:

Коля.рост = 140

Бразилия.климат = жаркий

Нина.фамилия = Рыбакова


В будущем мы увидим, что свойство само может быть объектом, а значит, у него тоже могут быть свои свойства. Вот аналогии:

^ Нина.фамилия.число букв = 8

Буратино.нос.длина = 30

Танк.двигатель.шестеренка.материал = сталь


Говорят: Свойству Width объекта HScrollBar1 присваивается значение 100.

Окно кода. Теперь поговорим о том, как нам сделать, чтобы компьютер выполнил этот оператор, причем именно при нажатии на кнопку Button1, а не в какой-либо другой момент. Снова садитесь за компьютер. Вы еще не стерли наш проект? Проверьте, находимся ли мы в режиме проектирования [design]. Сделайте двойной щелчок по кнопке Button1. Перед вами возникнет новое окно – окно программного кода или просто окно кода (Рис. 1 .7).



Рис. 1.7

Будем называть кодом любой текст программы. В окно кода будем записывать весь код нашего проекта (а большие проекты могут использовать и несколько окон кода).

Если по какой-то причине окно кода вы потеряли из виду, то в главном меню окна VS выберите View  Code.

Заготовка процедуры. Мы видим, что в окне кода уже что-то написано. Это написал сам VB. Ситуация, как в ресторане: мы еще ничего не заказали, а соль и перец уже на столе. Кроме этого, многое из написанного Бейсиком мы даже и не видим, да и знать нам этого невидимого пока не надо. Если вы человек опытный и вам любопытно увидеть этот невидимый код, щелкните по малюсенькому плюсику возле строки Windows Form Designer generated code, но не каждому затем удастся отыскать получившийся минусик и щелкнуть по нему, чтобы все вернулось к прежнему виду. Если вы все-таки попались и не знаете, как выбраться из ситуации, то или бросьте этот проект, или почитайте Error: Reference source not found.

Остановимся пока на смысле двух видимых на рисунке строк.

Private ^ Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Слово Sub обозначает «процедура». Слово Click означает «щелкнуть мышкой». На смысле остальных слов в строке пока не останавливаемся. Эту строку можно вольно перевести как «Что делать, если щелкнуть мышкой по кнопке Button1». А более точно так: «Заголовок процедуры, в которой компьютеру пишется инструкция, что делать, если человек мышкой нажмет на кнопку Button1».

Ниже оставлено свободное место и там уже мигает курсор, приглашая нас вводить туда какие нам угодно операторы. Они-то и будут выполнены при щелчке по кнопке.

Еще ниже находится строка End Sub, что означает «конец процедуры». Все пространство между этими двумя строками, которое мы будем заполнять операторами, будем называть телом процедуры.

Таким образом, мы видим перед собой не что иное, как заготовку процедуры, которая должна выполниться при щелчке по кнопке ^ Button1. Услужливый VB догадался создать эту заготовку, когда мы дважды щелкнули по кнопке Button1.

Вам нужно ввести с клавиатуры на свободное место между этими двумя строками наш оператор

^ HScrollBar1.Width = 100

Если у вас нет опыта ввода текста в компьютер, то прервитесь и изучите Приложение 2. Вы не имеете права допустить ни малейшей ошибки в строке. Даже лишний пробел может быть ошибкой.

Вводим оператор. Начнем потихоньку вводить. Введите слово HScrollBar1 и точку, причем VB простит вас, если вы где-нибудь вместо заглавной буквы введете строчную или наоборот. Как только вы введете точку, VB (чтобы вам не утомлять свои персты вводом слова Width) развернет перед вами список всех уместных после точки слов. Вам останется только сделать двойной щелчок на нужном слове (Рис. 1 .8) или выделить его и нажать на клавиатуре клавишу Tab.



Рис. 1.8

Если вам не хочется прокручивать этот список в поисках нужного слова, вы можете просто начать вводить это слово с клавиатуры сразу после точки, компьютер тогда сам прокрутит список и нужное слово найдет и выделит. Не ленитесь после этого все же нажать клавишу Tab, пусть даже слово и совсем почти вами дописано, потому что это обережет вас от возможных грамматических ошибок.

Но вот ввод оператора закончен. Уберите теперь текстовый курсор из строки, которую вводили. VB при этом проверит грамматическую правильность строки и немного подправит ее внешний вид, исходя из своих представлений об изяществе. Если он обнаружит ошибки, то ошибочные части строки подчеркнет. Если вы увидели, в чем ошибка, исправьте ее. Если не увидели, то читайте .

Теперь окно кода должно иметь такой вид:

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

End Sub

End Class


Перед вами готовая процедура. Проверьте, не ввели ли вы нечаянно что-нибудь выше, ниже или правее этих строк. Если ввели, то сотрите.

Запускаем проект. Пришла пора снова запускать проект. Предположим, что ошибок в коде нет. Щелкните кнопку Start. На экране опять появляется знакомый вид работающей формы. Щелкните по кнопке Button1 – горизонтальная полоса прокрутки изменила свою ширину (Рис. 1 .9).



Рис. 1.9

Поздравляю! Ваш первый проект заработал. Щелкните еще раз. Ничего не изменилось. Естественно. Завершим выполнение проекта.

Если у вас при запуске получилось не то, что нужно, или же VB выдал какое-то сообщение, прочтите чуть ниже подраздел .

Быстрое переключение между окнами кода и конструктора. Над окном кода вы видите закладки (Рис. 1 .7). Вы можете в любой момент щелкнуть по любой из них и увидеть соответственно стартовую страницу или окно конструктора форм, или снова окно кода.
        1. ^ Сохранение, закрытие, открытие, создание проекта, выход из VS

Сохранение. А теперь нам пора сохранить проект. Вообще-то, сохраниться нам надо было еще давно, до первого запуска, но не хотелось отвлекаться. Помните, что несохраненный проект пропадет, если внезапно отключится электричество или компьютер зависнет. Сохраните сейчас проект, нажав на кнопку (Save All) на панели инструментов. В дальнейшем рекомендую сохраняться таким образом перед каждым запуском проекта на выполнение.

Вы должны понимать одну вещь. Каждый раз, когда вы нажимаете на кнопку Save All, VS, ни о чем вас не спрашивая, стирает с диска весь ваш проект (в том виде, как он был сохранен в последний раз) и на его место записывает с тем же именем его исправленную и дополненную вами версию, то есть ту, что вы видите на экране. Так поступают все современные программные продукты. На усмотрение программиста оставляется решать, а не хуже ли новая версия старой и не жалко ли старой версии.

Дальнейший материал подраздела прочтите, не выполняя. Выполнение отложите на потом, когда действительно понадобится закрывать, открывать или создавать проект.

Закрытие. Если вы хотите закончить работу над проектом, вам нужно сохраниться, а затем так закрыть его: ^ File  Close Solution. Теперь в окне Solution Explorer у вас должно быть пусто. Если вы забыли сохранить проект, VS перед закрытием предложит вам сделать это.

Выход из VS совершенно такой же, как и из большинства других приложений Windows – щелчок мышкой по крестику в правом верхнем углу главного окна VS или File  Exit. Если вы забыли сохранить проект, VS перед выходом предложит вам сделать это.

Открытие. Сохранившись и закрыв проект, вы можете спокойно выйти из VS и можете даже выключить компьютер. Можно и не выходить из VS. Чтобы продолжить через некоторое время работу над проектом, снова запустите VS (если вы вышли из нее) и так загрузите (откройте) сохраненный проект: File  Open  Project  перед вами откроется диалоговое окно открытия проекта  зайдите в папку проекта (Рис. 1 .10). Если вы не знаете, как добраться до папки нужного проекта, читайте следующий подраздел.



Рис. 1.10

Затем щелкните по одному из двух файлов, а именно, по файлу так называемого решения (на рисунке он выделен). Другой файл (на рисунке он ниже) – это файл проекта (кстати, можно щелкнуть и по нему). Как вы видите, эти два файла различаются значками и расширениями. Вообще о проектах и решениях (Solution) поговорим позже (Error: Reference source not found).

Затем – Open. Перед вами появится ваш проект. Если же не появится и даже закладки окон конструктора форм и кода не появляются над окном, сделайте двойной щелчок по значку Form1.vb в окне Solution Explorer (Рис. 1 .5). Появится окно конструктора форм. Если же нигде не видно окна Solution Explorer, сделайте следующее: View  Solution Explorer. Еще один способ: View  Designer (чтобы появилось окно конструктора форм) и View  Code (чтобы появилось окно кода).

Создание. Если вы работаете над каким-нибудь проектом, а затем хотите бросить его и начать новый проект, то сначала сохраните и закройте проект, над которым работаете. Убедитесь, что в окне Solution Explorer у вас пусто. Затем выполните File  New  Project, а далее – как уже описано в .

При создании нового проекта не забудьте дать ему подходящее имя. Всем вашим проектам придумывайте, конечно, разные имена. Для каждого нового проекта VS создает отдельную папку с данным вами именем. Через некоторое время у вас накопится несколько папок с сохраненными проектами. Все они расположены рядышком внутри папки Visual Studio Projects.

Ситуации. Если вы работали в некотором проекте, а затем, не сохранив и не закрыв его, решили открыть или создать другой проект, то VS сначала предложит вам сохранить старый и после сохранения автоматически удалит его из среды (не с диска, конечно), освобождая место для нового.

Если вы по ошибке вместо ^ File  Open  Project или File  New  Project выполните File  Add Project, то старый проект не будет удален и в главном окне VS вы будете иметь вместо одного сразу два проекта. Вы это сразу же заметите, взглянув в окно Solution Explorer. Иногда иметь в среде сразу два проекта удобно, иногда просто необходимо, но пока вам это не нужно. Если это все же произошло, жмите, пока вы еще неопытны, File  Close Solution, отвечая отказом на предложения сохраниться, до тех пор, пока окно Solution Explorer не опустеет.

Часто новый проект, который мы создаем, бывает похож на старый, и удобнее не новый создавать с нуля, а старый переделывать. Мой опыт таков. Я, не открывая старый проект, копирую целиком его папку. Таким образом, теперь у меня на диске два одинаковых проекта. Затем я обычным образом открываю копию проекта и переделываю ее в новый проект. Как копировать папки, написано в Приложении 2 «Действия над файлами и папками». Вы спросите: Зачем копировать, если можно просто переделывать старый проект в его папке? Ответ: в процессе переделки вы можете потерпеть неудачу, тогда у вас и новый проект не будет создан и старый испорчен.
        1. ^ Работа с файлами и папками в окнах Open Project и Open File

В этом подразделе я научу вас путешествовать внутри окон Open Project и Open File по папкам и дискам, находить в них нужный проект, нужную папку, нужный файл, а кроме этого – не выходя из окон создавать, копировать, перемещать и удалять файлы и папки, без чего в работе с VB не обойтись. Вся упомянутая работа в окнах Open Project и Open File очень похожа на аналогичную работу в окнах Windows, которая описана в Приложении 2.

Окно Open Project. Запустите VS. Затем: File  Open  Project  перед вами появится диалоговое окно открытия проекта (Рис. 1 .11).



Рис. 1.11

Щелкните в нем по кнопке My Projects. Вы увидите содержимое папки Visual Studio Projects.

Путешествуем по папкам. В большом белом поле в середине диалогового окна вы видите список папок и файлов. Это содержимое папки, название которой вы видите в находящемся чуть выше раскрывающемся списке Look in. Вы можете двойным щелчком мыши войти в любую из папок в этом поле. Тогда именно она появится в списке Look in, а в большом поле появится ее содержимое. Таким образом вы можете продвигаться вглубь папок, как внутрь матрешки. А как продвигаться наружу? Для этого есть кнопка . Щелчком по ней вы выйдете из папки, показанной в списке ^ Look in, в папку, внутрь которой она входит. Еще щелчок – еще один шаг наружу. И так далее, пока не окажетесь на рабочем столе Windows (Desktop). Если хотите опять идти внутрь и добраться до проектов, войдите в Мои документы (My Documents), а там – в Visual Studio Projects.

Если вы сейчас дважды щелкнете по папке Красим форму, то окажетесь внутри нее, то есть увидите то, что изображено на Рис. 1 .10.

Щелкнув по черной треугольной стрелке в раскрывающемся списке Look in, вы раскроете список папок в виде части дерева, похожего на дерево Проводника Windows (см. Рис. 1 .12). Это позволит вам быстрее путешествовать по папкам.



Рис. 1.12

Потренируйтесь. У вас должна возникнуть уверенность, что вы можете добраться до любой папки на любом диске вашего компьютера, а значит открыть любой проект.

Окно Open File. В окне Open Project вы видите все папки, но вот файлы видите не все, а лишь те, типы которых указаны в списке Files of type. Чтобы видеть все файлы, вам надо вызвать на экран не диалоговое окно открытия проекта, а диалоговое окно открытия файла, то есть выполнить не File  Open  Project, а File  Open  File. Сделайте это и тут же зайдите в папку Красим форму (см. Рис. 1 .13).



Рис. 1.13

На Рис. 1 .10 мы видим в папке только два файла, а здесь – семь. В принципе окна ^ Open Project и Open File похожи как по виду, так и по назначению, только второе показывает все файлы и работает со всеми файлами, а первое – нет.

Диалоговое окно открытия файла может открывать и проекты и просто файлы. При этом VS открывает их в своей среде, а если посчитает их слишком уж чужими – вызывает подходящее с ее точки зрения приложение Windows.

Дальнейшие пояснения я буду вести на примере окна Open File.

Когда вы совершаете какие-то действия с папками и файлами в диалоговых окнах, не советую во избежание неприятных последствий производить их над папками и файлами открытого проекта.

Создаем папки. Внутри папки, выбранной в списке Look in, вы можете создавать новые папки. Новая папка будет создана, если вы щелкнете по кнопке . Тут же вам нужно будет ввести с клавиатуры ее имя.

Создаем файлы. Щелкните правой клавишей мыши по белому пространству большого поля и в контекстном меню выберите New. В возникшем подменю вы увидите типы файлов, которые вы можете создать внутри папки, выбранной в списке Look in (см. Рис. 1 .14). Щелкайте по нужному типу и создавайте. Среди этих типов вы найдете и Folder, что означает создание папки.



Рис. 1.14

Копируем файлы и папки. Чтобы скопировать файл или папку в другое место, выберите в контекстном меню файла или папки опцию Copy (копировать). Затем доберитесь до папки, в которую хотите данный файл или папку скопировать, то есть добейтесь ее присутствия в списке Look in, и щелкните правой клавишей мыши по свободному пространству. В открывшемся контекстном меню выберите Paste (вставить). Если вы хотите, чтобы копия находилась рядом с оригиналом, добираться до другой папки не нужно.

Перемещаем файлы и папки. Чтобы переместить файл или папку в другое место, делайте все то же, что и при копировании, только вместо Copy выберите в контекстном меню опцию Cut (вырезать).

Переименовываем файлы и папки. Чтобы переименовать файл или папку, выберите в контекстном меню опцию Rename (переименовать) и введите новое имя.

Удаляем файлы и папки. Чтобы удалить файл или папку, выберите в контекстном меню опцию Delete (удалить) и ответьте утвердительно на вопрос компьютера.
        1. ^ Как VB реагирует на наши ошибки

В на примере похода на футбол я уже показал вам, к каким катастрофическим последствиям могут привести ошибки в программе. Что будет, если вы допустите ошибку в программе на VB? Это зависит от того, что это за ошибка и сумеет ли VB ее своевременно обнаружить. Рассмотрим 3 типа ошибок.

Смысловые ошибки – 1. Итак, вы сохранили свой первый проект. Закройте его – File  Close Solution. Создайте новый проект. Он предназначен для того, чтобы мы намеренно допускали в нем ошибки и учились их исправлять. Назовите проект как-нибудь, например, «Ошибки». Поместите на форму одну-единственную кнопку (Рис. 1 .15).



Рис. 1.15

В режиме проектирования сделайте двойной щелчок по этой кнопке и в возникшей заготовке процедуры в окне кода введите такой код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim a = 90

Button1.Width = 100 - a

End Sub

Поясним его.

Оператор Dim a = 90 означает «Объявим, что существует переменная a и присвоим ей значение 90». Другими словами, «Пусть а будет равно 90». Оператор Button1.Width = 100 - a означает «Сделать ширину кнопки Button1 равной 100 – a», то есть в нашем случае 10. Если вы подзабыли, что такое переменная величина, читайте .

Запустите проект, нажмите кнопку. Кнопка стала слишком узкой, так как 10 – достаточно маленькая величина. Мы склонны считать это нашей ошибкой, но не можем требовать от VB, чтобы он такие ошибки обнаруживал. Действительно, откуда ему знать, может, нам нравится иметь такие узенькие кнопки. Таким образом, существуют смысловые (с точки зрения человека) ошибки в коде и дизайне проекта, которые VB ошибками не считает и поэтому не обнаруживает и в принципе обнаруживать не должен.

Смысловые ошибки – 2. Завершите выполнение проекта. Изменим код процедуры (я показываю только тело):

Dim a = 300

Button1.Width = 100 - a

Явная ерунда. Получается, что ширина кнопки должна стать отрицательной (-200). Так не бывает. Запустите проект, нажмите кнопку. Кнопка исчезает. Завершите выполнение проекта. Вот эту-то ошибочку VB мог бы обнаружить и дать нам знать. Но не захотел. Или не смог. Просто сделал ширину кнопки нулевой. А нам показалось, что она исчезла. Считать ли это недостатком VB? Не знаю. Во всяком случае мы должны знать, что VB не настолько умен и услужлив, чтобы обнаруживать все наши даже явные глупости.

Завершите выполнение проекта. Напоминаю, что перед любым изменением кода или дизайна проекта его выполнение нужно завершать.

Ошибки выполнения. Пока мы VB только ругали. Пришла пора хвалить. Изменим код процедуры:

Dim a = 0

Button1.Width = 100 / a

Знак «/» означает деление. Что получается? Сначала мы требуем, чтобы переменная a стала равной 0, после чего хотим, чтобы число 100 было поделено на 0. Но делить на 0 – не в человеческих силах. Интересно, может быть компьютер сможет то, что не дано человеку? Запустите проект, нажмите кнопку. VB выдает сообщение об ошибке (Рис. 1 .16).



Рис. 1.16

Что же произошло? После нажатия кнопки VB начал честно выполнять процедуру и первый оператор Dim a = 0 выполнил без проблем. При выполнении второго оператора он столкнулся с необходимостью деления на 0 и, будучи не в силах это сделать, прервал работу программы и выдал соответствующее сообщение.

Сообщение предназначено для того, чтобы пояснить человеку, знающему английский и имеющему некоторый опыт в программировании, в чем состоит ошибка. Если у вас такого опыта нет, запомните, что слово «overflow» из текста сообщения является часто указанием на деление на 0.

Также VB любезно подсветил оператор, который не сумел выполнить, и пометил стрелкой-указателем строку, в которой он находится. Мы сразу же знаем, где искать ошибку.

Подробнее о том, как справляться с ошибками, вы можете прочитать в Error: Reference source not found, а сейчас жмите кнопку Break в окне сообщения. Выполнение программы прервано, но не завершено. Оно замерло на моменте ошибки. Теперь для разгадки, в чем ошибка, полезно узнать, чему в настоящий момент выполнения программы (то есть перед выполнением помеченного оператора) равны значения переменных, свойств и других элементов проекта. Для этого достаточно поместить курсор мыши на этот элемент, не нажимая, и взглянуть на всплывшую подсказку. На Рис. 1 .17 курсор поставлен на свойство Width и мы видим в подсказке, что ширина кнопки равна 96. Это та ширина, которая была до выполнения оператора Button1.Width = 100 / a, то есть та первоначальная ширина кнопки, которую мы видели до момента нажатия на нее.



Рис. 1.17

Поместите курсор на переменную a – и VB вам подскажет, что a действительно в этот момент равна нулю.

Сейчас в нашем простейшем случае вся эта информация не нужна, но в будущем, зная значения переменных, свойств и других элементов проекта на момент ошибки, вы легче ее найдете.

Завершите выполнение проекта нажатием кнопки (^ Stop Debugging) на панели инструментов и исправьте ошибку.

Итак, VB не в силах обнаружить ошибки выполнения заранее, еще до запуска проекта. Действительно, откуда ему знать, что в момент деления переменная a будет равна 0? Это ж надо в другую строку заглядывать!

Ошибки выполнения еще называют исключениями (Exceptions).

Однако, существует целый ряд ошибок, которые VB обнаруживает именно заранее. Вот они.

Ошибки компиляции (построения, build errors). Если вы разговариваете с иностранцем, то для того, чтобы он вас понял, ваши предложения должны быть правильно грамматически построены и иметь понятный иностранцу смысл. Компьютер – тот же иностранец, но он кроме этого еще и очень «тупой» иностранец, поэтому все, что вы пишете в окне кода, должно быть абсолютно правильно с точки зрения VB и грамматически и по смыслу, иначе он вас просто не поймет. Я пока не буду углубляться в то, что такое «смысл» с точки зрения VB.

Когда вы запускаете проект на выполнение, VB прежде всего смотрит, нет ли в программе грамматических и смысловых ошибок, и только если все правильно, разрешает проекту выполняться. Этот поиск ошибок происходит даже раньше запуска, еще в процессе ввода вами программного текста в окно кода. Пусть вы неправильно записали слово Width (см. Рис. 1 .18) и не заметили этого. Когда вы убираете текстовый курсор из строки, которую вводили, VB уже начинает над строкой работать. Он немного подправляет ее внешний вид, приводя к стандартному. В частности, знаки арифметических операций и знаки равенства берутся в пробелы; расставляются, как положено, заглавные буквы. Но самое главное, VB обнаруживает некоторые ошибки и подчеркивает их волнистой линией.



Рис. 1.18

Поместите курсор мыши на подчеркнутую часть строки, не нажимая, и взгляните на всплывшую подсказку. По тексту ее можно догадаться об ошибке. В нашем случае в тексте подсказки мы видим слово ‘Wids’. Наверное, с ним что-то не в порядке. Исправьте ошибку, подчеркивание пропадет.

Некоторые ошибки VB обнаруживает только тогда, когда вы запускаете проект на выполнение. Бывает, что и вы сами не замечаете подчеркивания и запускаете проект. В обоих случаях VB выдает сообщение (Рис. 1 .19):



Рис. 1.19

Переводится оно так: «Были ошибки построения (компиляции, build errors). Продолжать работу проекта?». Это примерно то же самое, что спросить: «Тормоза не работают. Мчимся дальше?». Но даже если вы ответите Yes, VS все равно запустит на выполнение предыдущую версию проекта, в которой еще не было ошибок. Отвечайте No и исправляйте ошибки.

VB ошибается и сам. VB не всегда правильно находит место ошибки, а найдя, часто неправильно определяет, в чем ошибка состоит. Поэтому бывает, что программисту приходится превращаться в детектива, ищущего преступника по недостоверным свидетельским показаниям.

Совет. Я не буду здесь останавливаться на сложном процессе поиска ошибок, так как вы еще к этому не готовы (читайте Error: Reference source not found). Если VB выдает ошибку, еще раз посмотрите, так ли выглядит ваш код, как положено. Нет ли чего лишнего? Все ли английские буквы в тексте действительно английские, или среди них есть русские? Человеку очень легко спутать английские буквы с русскими того же начертания (особенно букву «с»), компьютер же не спутает никогда и придерется.
        1. ^ Усложняем проект

Закройте проект ошибок. Скопируйте папку проекта «Красим форму» тут же, рядышком с собой внутри папки Visual Studio Projects. Переименуйте как-нибудь скопированную папку, например, «Красим форму 1». Над копией будем продолжать работу. Откройте проект из этой папки. Это можно сделать в Windows двойным щелчком по файлу проекта или решения. Обратите внимание, что от изменения названия папки имя проекта не изменилось.

Усложним проект. Пусть при щелчке по кнопке ^ Button1 происходит что-нибудь еще, кроме изменения ширины полосы прокрутки, а именно три вещи:

Для этого достаточно в процедуру добавить 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
        1. ^ Дальнейшее усложнение

Закройте проект и сделайте еще одну копию его папки – «Красим форму 2». Над копией будем продолжать работу. Откройте проект из этой папки.

Работа для второй кнопки. Давайте напишем программу и для второй кнопки (Button2). Пусть при щелчке по ней:

В результате картинка должна стать такой, как на Рис. 1 .21.



Рис. 1.21

В режиме дизайна (проектирования) сделаем по кнопке Button2 двойной щелчок мышкой. Перед нами – снова окно кода, но в нем появилась заготовка другой процедуры, то есть новое приглашение – на этот раз приглашение для ввода операторов, реагирующих на щелчок кнопки Button2. Введем их. Теперь содержимое окна кода таково:

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"

RadioButton2.Hide()

Button2.BackColor = Color.Yellow

End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

HScrollBar1.Width = 200

TextBox1.Text = "Ширина полосы = 200"

RadioButton2.Show()

Button2.BackColor = Color.Red

End Sub

End Class

Пояснение: Для того, чтобы элемент RadioButton2 стал снова виден, мы использовали его метод Show. Кнопка же красится в красный цвет.

Запустите проект. Пощелкайте по кнопкам. Картинка у вас попеременно будет иметь вид то Рис. 1 .20, то Рис. 1 .21 .

Visual Studio .NET 2003 для удобства программиста отделяет процедуры в окне кода горизонтальной чертой. В книжке я не буду этого делать, ограничившись пропуском строки.

Аналогия. Давайте проведем аналогию между нашей программой и программой, которую мы дали любителю футбола в

Та программа состояла из нескольких процедур, эта также состоит из нескольких (двух) процедур.

Та программа описывала поведение одного человека в городе, эта описывает поведение нескольких объектов на форме.

В той программе процедуры состояли из команд, записанных одна за другой и выполнявшихся в порядке записи. В этой программе – то же самое: процедуры состоят из операторов, записанных один за другим и выполняющихся в порядке записи.

В той программе встречались процедуры двух типов ("Как…" и "Что делать, если…"). В этой программе обе процедуры одного типа - "Что делать, если нажата кнопка". О процедурах типа "Как…" поговорим позже.

В той программе события – это "Застрял лифт", "Заблудился", в этой события - это нажатия на кнопки.

Красим форму. А как же с обещанной покраской формы? Ах, да, забыл! Поместите на форму третью кнопку и создайте для нее такую процедуру:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Me.BackColor = Color.White

End Sub

Me – по-русски «Я». Так называют в окне кода формы саму форму, несмотря на то, что ее официальное имя – Form1. Красим мы ее в белый цвет (White). Результат нажатия на кнопку 3 виден на Рис. 1 .22.



Рис. 1.22

      1. 9964213524956616.html
        9964337032774670.html
        9964427449698993.html
        9964500570156387.html
        9964605996177418.html