Visual Basic .NET на уроках информатики

Использование условных структур

Разбить на страницы
Показывать лекцию целиком

В этой лекции вы узнаете, как:

  • писать условные выражения;
  • использовать оператор If...Then для создания перехода по условию;
  • "закоротить" оператор If...Then ;
  • использовать оператор Select Case для выбора одного варианта из нескольких возможных;
  • обнаруживать события мыши и управлять ими.
  • В этой лекции вы узнаете, как выполнить определенную область кода программы в зависимости от данных, введенных пользователем. Вы также узнаете, как просмотреть значения свойств объектов с помощью условных операторов, а затем, в зависимости от полученных результатов, выполнить определенный программный код.

    Что нового в Visual Basic .NET?

    Visual Basic .NET содержит два новых логических оператора с именами AndAlso и OrElse. В условном операторе (который содержит несколько условий, таком, как структура If...Then ), не всегда требуется вычислять все условия. Пропуск условий иногда называется "закорачиванием" и может определяться с помощью операторов AndAlso и OrElse.

    Программирование на основе событий

    До сих пор программы этой книги отображали на экране меню, объекты и диалоговые окна и предлагали пользователям произвести какие-то действия с элементами на экране в заданном порядке. Пока пользователь выполнял действия, программы терпеливо ожидали его реакции, а затем обрабатывали то, что он ввел. В программистских кругах эта методология известна как программирование на основе событий. Вы строите программу, создавая группу "умных" объектов, которые знают, как реагировать на попытки пользователя взаимодействовать с ними, а затем обрабатываете ввод с помощью процедур событий, ассоциированных с этими объектами. Следующая диаграмма показывает, как работает программа на основе событий, написанная на Visual Basic.

    Данные в программу могут также поступать от самого компьютера. Например, ваша программа может получать уведомление о доставке сообщения по электронной почте, или о том, что по системным часам прошел некоторый период времени. Эти события генерирует компьютер, а не пользователь. Независимо от того, как генерируется событие, Visual Basic реагирует на него, вызывая процедуру события, ассоциированную с объектом, который принял событие. До сих пор вы работали, в основном, с событиями Click, CheckedChanged и SelectedIndexChanged. Однако объекты Visual Basic также могут реагировать и на другие типы событий.

    События, поддерживаемые объектами Visual Basic

    Каждый объект в Visual Basic имеет предопределенный набор событий, на которые он может реагировать. Список этих событий можно увидеть, выделив имя объекта в раскрывающемся списке Class Name (Имя класса) в верхней части Редактора кода и щелкнув на раскрывающемся списке Method Name (Имя метода). (Имена событий Microsoft Visual Studio помечает значком в форме молнии.) Вы можете написать процедуру обработки любого события из списка, и, если при выполнении программы это событие произойдет, Visual Basic выполнит процедуру события, ассоциированную с ним. Например, объект списка поддерживает более 60 событий, включая Click, DoubleClick, DragDrop, DragOver, GotFocus, KeyDown, KeyPress, KeyUp, LostFocus, MouseDown, MouseMove, MouseUp, MouseHover, TextChanged и Validated. В ваших приложениях, вероятно, не потребуется программировать более трех или четырех из этих событий, но при создании элементов интерфейса следует знать, что у вас есть такой богатый выбор. На следующей иллюстрации показана часть списка событий в Редакторе кода для объекта ListBox (список).

    Управление программой Visual Basic по событиям означает, что большинство производимых вычислений будет выполняться в процедурах событий. Эти блоки кода могут обрабатывать ввод данных, вычислять новые значения, отображать полученные результаты или выполнять другие задачи. В предыдущей лекции вы узнали о том, как для выполнения вычислений в процедурах событий использовать переменные, операторы и математические формулы. В этой лекции вы узнаете, как использовать для сравнения переменных, свойств и значений условные структуры, а также узнаете, как в соответствии с результатом этого сравнения выполнять один или несколько операторов программы. В лекции 7 вы будете использовать циклы для повторного выполнения групп операторов до тех пор, пока не будет достигнуто некоторое значение, или пока не выполнится конкретное условие. Вместе эти структуры помогут вам создавать процедуры событий так, что они смогут реагировать почти на любую ситуацию.

    Использование условных выражений

    Один из наиболее мощных инструментов для обработки информации в процедуре события - это условное выражение. Условное выражение - это часть полного оператора программы, которая задает вопрос "истина или ложь?" по поводу содержимого свойства, переменной или другой части данных кода программы. Например, условное выражение

    Price < 100

    равно True, если переменная Price содержит значение, которое меньше 100, и равно False, если Price содержит значение, которое больше или равно 100. В условных выражениях вы можете использовать следующие операторы сравнения.

    Оператор сравнения Значение
    = Равно
    <> Не равно
    > Больше, чем
    < Меньше, чем
    >= Больше или равно
    <= Меньше или равно

    Совет. Выражения, которые могут быть вычислены как True или False, также известны как Boolean (булевы, логические). Вы можете присвоить значения типа Boolean некоторым свойствам объектов или переменным типа Boolean, которые были созданы с помощью оператора Dim и ключевого слово As Boolean.

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

    Условное выражение Результат
    10 <> 20 True (истина, 10 не равно 20)
    Score <20 True, если Score меньше 20; в противном случае False
    Score = Label1.Text True, если свойство Text объекта Label1 содержит такое же значение, что и переменная Score; в противном случае False
    TextBox1.Text = "Билл" True, если в первом текстовом поле содержится слово "Билл"; в противном случае False

    Условные структуры If ... Then

    Условные выражения, используемые в специальных блоках операторов, называемых условными структурами (структурами выбора), управляют исполнением других операторов вашей программы, и последовательностью их исполнения. Для вычисления в программе условия и выбора направления действий в зависимости от результата этого вычисления используется структура выбора If...Then. В самой простой форме структура выбора If...Then записывается в одну строку:

    If условие Then оператор

    где "условие" - это условное выражение, а "оператор" - это любой оператор программы Visual Basic. Например,

    If Score >= 20 Then Label1.Text = "Вы выиграли!"

    является условной структурой If...Then, которая использует условное выражение

    Score >= 20

    для определения того, должна ли программа установить свойство Text объекта Label1 на значение "Вы выиграли!". Если переменная Score содержит значение, которое больше или равно 20, то Visual Basic устанавливает свойство Text ; в противном случае он пропускает выражение присвоения и исполняет следующую строку кода процедуры события. Этот вид сравнения всегда дает в результате значение True или False. Условное выражение никогда не дает в результате значения "может быть".

    Проверка нескольких условий в структуре выбора If ... Then

    Visual Basic также поддерживает структуру выбора If...Then, которая позволяет включать в нее несколько условных выражений. Этот блок операторов может быть длиной в несколько строк и содержать ключевые слова ElseIf, Else и End If.

    If  условие1  Then
    операторы, исполняемые, если условие1 равно True
    ElseIf  условие2  Then
    операторы, исполняемые, если условие2 равно True
    [Здесь могут быть добавлены дополнительные блоки ElseIf и операторы]
    Else
    операторы, исполняемые, если ни одно из условий не равно True
    End If

    В этой структуре сначала вычисляется условие1. Если это условное выражение равно True, то выполняется блок операторов, расположенный непосредственно за ним. (В него вы можете включить один или несколько операторов программы.) Если первое условие не равно True, то проверяется второе условное выражение ( условие2 ). Если второе условие равно True, то выполняется второй блок операторов. Если ни одно из условий не равно True, то выполняются операторы, следующие за ключевым словом Else. Вся структура завершается ключевыми словами End If.

    Следующий код показывает, как можно использовать многострочную структуру If...Then для определения количества налоговых сборов в гипотетической налоговой декларации. Суммы доходов и процентные ставки для единообразия взяты из американского налогового реестра за 2001 год.

    Dim AdjustedIncome, TaxDue As Double
    AdjustedIncome = 32000
    
    If AdjustedIncome <= 27050 Then '15% ставка налога
    TaxDue = AdjustedIncome * 0.15
    ElseIf AdjustedIncome <= 65550 Then '28% ставка налога
    TaxDue = 4057.5 + ((AdjustedIncome - 27050) * 0.28)
    ElseIf AdjustedIncome <= 136750 Then '31% ставка налога
    TaxDue = 14837.5 + ((AdjustedIncome - 65550) * 0.31)
    ElseIf AdjustedIncome <= 297350 Then '36% ставка налога
    TaxDue = 36909.5 + ((AdjustedIncome - 136750) * 0.36)
    Else '39.6% ставка налога
    TaxDue = 94725.5 + ((AdjustedIncome - 297350) * 0.396)
    End If

    Важно! Порядок условных выражений в конструкции If...Then и ElseIf критически важен. Что было бы, если бы вы изменили порядок условных выражений в примере вычисления налогов, и перечислили бы ставки, начиная с самой большой? Налогоплательщики из групп, платящих 15%, 28% и 31% попали бы в группу 36% ставки, так как они все имели бы доход, который меньше или равен 297 350. (Visual Basic останавливается на первом условном выражении, которое равно True, даже если остальные также равны True.) Так как все условные выражения в этом примере проверяют значение одной и той же переменной, то, чтобы налогоплательщики попали в правильные группы, они должны быть приведены в порядке возрастания. Мораль: когда вы используете более одного условного выражения, тщательно обдумайте их порядок.

    Эта структура выбора на первом и последующих уровнях налогообложения проверяет переменную с двойной точностью AdjustedIncome до тех пор, пока одно из условных выражений не окажется равным True, а затем определяет сумму налогов данного налогоплательщика. С небольшими видоизменениями она может быть использована для вычисления налогов любого налогоплательщика, платящего налоги по прогрессивной шкале налогов, такой, какая применяется в Соединенных Штатах. Полагая, что это полный список налоговых ставок, что он не устарел, и что значение в переменной AdjustedIncome корректно, эта программа даст правильную сумму подлежащих уплате в 2001 году налогов для любого американского налогоплательщика. Если ставки налогов изменятся, то нет ничего проще, чем изменить эти условные выражения. С помощью использования дополнительной структуры выбора, определяющей статус налогоплательщика, программа может быть легко расширена на всех американских налогоплательщиков. В следующем упражнении вы будете использовать структуру выбора If...Then для проверки пользователей при их регистрации в программе. Используя такую же программную логику, вы можете написать сетевое приложение, которое включает проверку пользователей.

    Проверка пользователей с помощью If ... Then

  • Запустите Visual Studio и создайте в папке c:\vbnet03sbs\Гл.6 новый проект Windows Application (Приложение Windows) на Visual Basic с именем My User Validation. Будет создан новый проект и в Windows Forms Designer (Конструктор Windows Forms) появится пустая форма.
  • С помощью элемента управления Button на закладке Windows Forms окна области элементов создайте кнопку в верхнем левом углу формы.
  • Установите свойство Text этой кнопки равным "Войти".
  • С помощью элемента управления PictureBox создайте на форме под кнопкой прямоугольную область вывода изображений. Ваша форма должна выглядеть примерно так.

  • Сделайте двойной щелчок мышью на кнопке Войти. В Редакторе кода появится процедура события Button1_Click.
  • Введите в этой процедуре события следующие операторы:

    Dim UserName As String
    UserName = InputBox("Введите ваше имя.")
    If UserName = "Генри" Then
    MsgBox("Добро пожаловать, Генри! Как поживаешь?")
    PictureBox1.Image = System.Drawing.Image.FromFile _
    ("c:\vbnet03sbs\Гл.6\henry photo.jpg")
    ElseIf UserName = "Феликс" Then
    MsgBox("Добро пожаловать, Феликс! Сыграем?")
    PictureBox1.Image = System.Drawing.Image.FromFile _
    ("c:\vbnet03sbs\Гл.6\felix photo.jpg")
    Else
    MsgBox("Извините, я вас не знаю.")
    End		'выход из программы
    End If

    Пробел и символ продолжения строки (_), использованные после свойств PictureBox1.Image, разбивают слишком длинные операторы программы на четыре строки. Вы можете ввести каждый из этих длинных операторов в одну строку; при этом Редактор кода будет прокручиваться вправо.

    Совет. Строки программы в Редакторе кода и Visual Studio могут иметь в длину более 65 000 символов, но обычно проще всего работать со строками, длина которых не превышает 80 символов. Вы можете разбить длинные операторы программы на несколько строк с помощью пробела и символа продолжения строки (_), которые ставятся в конце всех строк выражения, за исключением последней. Однако нельзя использовать символ продолжения строки для разделения строковой константы, заключенной в кавычки.

    Когда вы закончите, ваш экран должен выглядеть так.

  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на стандартной панели инструментов.
  • Щелкните на кнопке Start (Начать) стандартной панели инструментов. Программа запустится на выполнение в среде разработки. На экране появится пустая форма с единственной кнопкой Войти в верхнем левом углу.
  • Щелкните на кнопке Войти. Функция InputBox в процедуре события Button1_Click отображает диалоговое окно, которое просит вас ввести свое имя.
  • Введите Генри, а затем щелкните на OK.

    Примечание. Проверки условий в этой программе учитывают регистр букв, так что убедитесь, что вы ввели "Генри", а не "генри".

    Структура выбора If...Then сравнивает в первом условном выражении имя, которое вы ввели, с именем "Генри". Выражение равно True, и оператор If...Then отображает с помощью функции MsgBox приветственное сообщение.

  • Щелкните в окне сообщения на OK. Окно сообщения закроется, а в области вывода изображений появится фото в формате JPEG.

    Процедура, использованная для загрузки картинки, та же, что была показана в лекциях 3 и 4 этой книги - я использую метод System.Drawing.Image.FromFile, который является частью пространства имен (или библиотеки объектов) System.Drawing. Этот метод специально разработан для загрузки изображений из файлов.

  • Щелкните на кнопке Войти, введите Феликс, а затем щелкните на OK. На этот раз структура выбора выбирает случай ElseIf и пропускает пользователя Феликс в программу. На экране снова с помощью функции MsgBox отображается приветственное сообщение.
  • Щелкните в окне сообщения на OK. В объект вывода изображений загружается фотография в формате JPEG, ассоциированная с этим пользователем, как показано ниже.

  • Щелкните на кнопке Войти, введите Селли, а затем щелкните на OK. Исполняется блок Else структуры выбора, и в окне сообщения появляется следующее сообщение.

  • Чтобы закрыть окно сообщения, щелкните на OK. Окно сообщения закроется, и программа остановится. Ваш код не допустил неавторизованного пользователя к использованию программы. Полная программа User Validation доступна на диске в папке c:\vbnet03sbs\ Гл.6\user validation.
  • Использование логических операторов в условных выражениях

    Если вы хотите включить в вашу структуру выбора более одного критерия выбора, то в структуре If...Then и ElseIf вы можете проверять более одного условного выражения. Эти дополнительные условия объединяются вместе с помощью одного или большего количества логических операторов, перечисленных в следующей таблице:

    Логический оператор Значение
    And Если оба условных выражения равны True, то результат равен True.
    Or Если одно из условных выражений равно True, то результат равен True.
    Not Если условное выражение равно False, то результат равен True. Если условное выражение равно True, то результат равен False.
    Xor Если одно, и только одно, из условных выражений равно True, то результат равен True. Если оба равны True или оба равны False, то результат равен False. (Xor означает "исключающее или".)

    Совет. Когда ваша программа проверяет сложное выражение, которое объединяет различные типы операторов, то сначала она обрабатывает математические операторы, затем операторы сравнения, и только в третью очередь логические операторы.

    Следующая таблица содержит список нескольких примеров работы с логическими операторами. В этих выражениях предполагается, что строковая переменная Vehicle содержит значение "Велосипед", а целочисленная переменная Price содержит значение 200.

    Логическое выражение Результат
    Vehicle = " Велосипед " And Price < 300 True (оба условия равны True)
    Vehicle = "Машина" Or Price < 500 True (одно из условий равно True)
    Not Price < 100 True (условие равно False)
    Vehicle = " Велосипед " Xor Price < 300 False (оба условия равны True)

    В следующем упражнении вы измените программу My User Validation так, чтобы она в процессе авторизации пользователя запрашивала у него пароль. Пользователь будет вводить пароль и вы должны изменить условия в структуре выбора If...Then и ElseIf так, чтобы для проверки введенного пароля они использовали оператор And.

    Добавление защиты паролем с помощью оператора And

  • Отобразите в Редакторе кода процедуру события Button1_Click.
  • Измените оператор Dim в начале этой процедуры события так, чтобы он объявлял также переменную Pass типа String. Используйте синтаксис:

    Dim UserName, Pass As String
  • Между оператором InputBox и оператором If...Then этой процедуры (то есть между второй и третьей его строками) добавьте следующий оператор:

    Pass = InputBox("Введите пароль.")
  • Измените оператор If...Then на следующий:

    If UserName = "Генри" And Pass = "цветок" Then

    Теперь этот оператор включает логический оператор And, который, прежде чем пропустить в систему пользователя Генри, проверяет имя пользователя и пароль.

  • Измените оператор ElseIf на следующий:

    ElseIf UserName = "Феликс" And Pass = "листок" Then

    Логический оператор And добавляет проверку пароля "листок" для пользователя Феликс.

    Совет. Готовое приложение Password Validation находится в папке c:\vbnet03sbs\Гл.6\password validation.

  • Щелкните на кнопке Start (Начать) стандартной панели инструментов. Программа запустится на выполнение в среде разработки.
  • Щелкните на кнопке Войти, введите Генри, а затем щелкните на OK. Программа запросит у вас пароль.
  • Введите цветок, а затем щелкните на OK. Условное выражение And становится равным True, и программа приветствует пользователя Генри.
  • Чтобы закрыть окно сообщения, щелкните на OK.
  • Щелкните на кнопке Войти, введите Феликс, а затем щелкните на OK. Программа запросит у вас пароль.
  • Введите листок, а затем щелкните на OK. Программа пропускает пользователя Феликс - пароли работают!
  • Теперь попробуйте использовать имена пользователей Генри и Феликс с некорректным или пустым паролем. Вы обнаружите, что они не работают, программа завершается и возвращается среда разработки.

    Совет. Если вы хотите написать полноценную версию программы Password Validation, то рассмотрите возможность поместить текстовое поле для ввода пароля непосредственно в форме. Объекты текстового поля поддерживают свойство PasswordChar, которое вы можете использовать для отображения при вводе символов-заменителей вводимых знаков, например звездочки (*), и свойство MaxLength, которое позволяет вам ограничить число вводимых символов.

  • "Закорачивание" с помощью AndAlso и OrElse

    Visual Basic .NET предлагает два логических оператора, которые можно использовать в условных выражениях - AndAlso и OrElse. Эти операторы работают точно так же, как And и Or соответственно, но несколько по-другому вычисляются. Это отличие будет новым для тех программистов, которые уже имеют опыт работы с предыдущими версиями Visual Basic.

    Рассмотрим оператор If, который содержит два условия, связанные оператором AndAlso. Чтобы выполнились операторы структуры If, необходимо, чтобы оба условия были равны True. Если первое условие равно False, то Visual Basic .NET немедленно перейдет к следующей строке или оператору Else, не проверяя второго условия. Такое частичное, или укороченное, вычисление оператора If имеет логический смысл - зачем Visual Basic должен продолжать проверять оператор If, если оба условия не могут быть равны True?

    Оператор OrElse работает аналогичным образом. Рассмотрим оператор If, который содержит два условия, связанные с оператором OrElse. Чтобы выполнились операторы структуры If, необходимо, чтобы хотя бы одно из условий было равны True. Если первое условие равно True, то Visual Basic .NET немедленно перейдет к выполнению операторов в структуре If, не проверяя второго условия.

    Вот пример такой короткой ситуации в Visual Basic .NET - это простая процедура, которая использует оператор If и оператор AndAlso для проверки двух условий и отображения сообщения "Внутри If" при условии, что оба условия равны True:

    Dim Number As Integer = 0
    If Number = 1 AndAlso MsgBox("Проверка второго условия") Then
    MsgBox("Внутри If")
    Else
    MsgBox("Внутри Else")
    End If

    Функция MsgBox сама используется как вторая проверка условия, что несколько необычно, но странная запись полностью корректна и дает нам прекрасную возможность увидеть в деталях, как работает "закорачивание". Текст "Проверка второго условия" появляется в окне сообщения только тогда, когда переменная Number равна 0; в противном случае оператор AndAlso обходит выражение If, и вторая часть условия не вычисляется. Если вы попробуете запустить этот код, помните, что он предназначен только для демонстрации - вы не станете использовать MsgBox в такой записи потому, что на самом деле она ничего не проверяет. Но, изменяя значение переменной Number с 0 на 1 и обратно, вы можете представить себе, как работает оператор AndAlso и обход проверки условий.

    Вот второй пример того, как работает "закорачивание" в Visual Basic .NET, когда два условия проверяются с помощью оператора AndAlso. На этот раз после оператора AndAlso используется более сложное условие ( 7 / HumanAge <= 1 ), которое пересчитывает возраст человека в число собачьих жизней:

    Dim HumanAge As Integer
    HumanAge = 7
    ' Один год для собаки - это семь лет для человека
    If HumanAge <> 0 AndAlso 7 / HumanAge <= 1 Then
    MsgBox("Вам как минимум один ""собачий""  год")
    Else
    MsgBox("Вам менее одного "собачьего" года ")
    End If

    Эта процедура пытается определить, равно ли значение в целой переменной HumanAge, по крайней мере, 7. Она является частью более сложной программы, которая определяет так называемые "собачий" возраст человека, поделив его текущий возраст на 7. (Если вы раньше не слышали о концепции "собачьего" возраста, то слушайте - следуя этой логике, человеку, которому 28 лет, исполнилось 4 "собачьих" года.) Этот код использует в операторе If два условия и может быть использован в различных условиях - я использовал его в процедуре события Click для объекта кнопки. Первое условие проверяет, не равно ли значение переменной HumanAge нулю - я предположил, что пользователь - достаточно здравомыслящий человек, и введет в HumanAge положительный возраст, так как отрицательное значение приведет к неверным результатам. Второе условие проверяет, равен ли возраст человека, по крайней мере, семи. Если оба условия имеют значение True, то в окне сообщения отображается сообщение "Вам как минимум один "собачий" год". Если человеку меньше семи лет, то отображается сообщение "Вам менее одного "собачьего" года". Теперь представьте, что я изменил значение переменной HumanAge с 7 на 0. Что произойдет? Компилятор Visual Basic .NET определяет, что первое условие оператора If становится равным False, и это предотвращает вычисление второго условия, таким образом останавливая, или "закорачивая", оператор If и уберегая нас от ужасной ошибки "деление на ноль", которая возникла бы, если бы мы разделили 7 на 0 (Новое значение переменной HumanAge ). Хотя у нас и есть возможность воспользоваться преимуществами "закорачивания" в Visual Studio .NET, у нас нет такой же возможности в Visual Basic 6. Установка переменной HumanAge на 0 при использовании Visual Basic 6 приведет к возникновению ошибки времени исполнения и обрушению программы, так как вычисляется весь оператор If, а деление на 0 в Visual Basic 6 запрещено.

    В качестве резюме можно сказать, что операторы AndAlso и OrElse в Visual Basic .NET дают программистам на Visual Basic несколько новых возможностей, включая предотвращение потенциальных ошибок времени исполнения и других неожиданных результатов. Стало также возможно увеличить производительность, поместив условия, которые требуют для своего вычисления много времени, в конце условного оператора. Visual Basic .NET не будет выполнять эти дорогостоящие вычисления условий до тех пор, пока это станет необходимо. Однако вы должны тщательно продумать все возможные условия, с которыми могут столкнуться операторы If при изменении состояний переменных во время выполнении программы.

    Структуры выбора Select Case

    Для управления исполнением операторов программы часто применяется структура выбора Select Case. В лекциях 3 и 5 этой книги вы уже использовали структуры Select Case, когда писали процедуры событий для обработки выбора элементов списков и раскрывающихся списков. Структура Select Case аналогична структуре If...Then...ElseIf, но она более эффективна, когда разветвление зависит от одной ключевой переменной. При использовании Select Case ваш код будет удобнее читать.

    Синтаксис структуры Select Case следующий.

    Select Case переменная
    Case значение1
    операторы программы, исполняемые, если переменная содержит значение 1
    Case значение 2
    операторы программы, исполняемые, если переменная содержит значение 2
    Case значение 3
    операторы программы, исполняемые, если переменная содержит значение 3
    ...
    Case Else
    операторы программы, исполняемые, если совпадения не найдено"
    End Select

    Структура Select Case начинается с ключевых слов Select Case и заканчивается ключевыми словами End Select. В качестве переменной вы можете использовать переменную, свойство или другое выражение, которое будет ключевым значением, т.е. проверяемым условием этой структуры. Значения значение 1, значение 2 и значение 3 можно заменить числами, строками или другими значениями, связанными с проверяемым условием. Если одно из этих значений совпадает со значением variable, то выполняются операторы, расположенные за соответствующим ему разделом Case. Затем Visual Basic переходит к строке, расположенной после оператора End Select и начинает с него дальнейшее исполнение кода. Вы можете включить в структуру Select Case любое количество выражений Case, а в каждое из этих выражений Case несколько значений. Если вы перечисляете несколько значений, разделяйте их запятыми.

    В следующем примере показано, как структура Select Case используется в программе для печати нужного сообщения о возрасте человека. Если переменная Age содержит значение 18, то свойству Text объекта метки присваивается строка "Теперь вы можете участвовать в выборах!".

    Dim Age As Integer
    Age = 18
    
    Select Case Age
    Case 16
    Label1.Text = "Теперь вы можете водить машину!"
    Case 18
    Label1.Text = "Теперь вы можете участвовать в выборах!"
    Case 21
    Label1.Text = "Теперь вы можете пить вино."
    Case 65
    Label1.Text = "Теперь вы можете уволиться и жить в свое удовольствие!"
    End Select

    Структура Select Case поддерживает также оператор Case Else, который можно использовать для отображения сообщений, если со значением переменной не совпадает ни одно из предшествующих значений. Вот как Case Else будет работать в следующем примере. Обратите внимание, что я изменил значение Age на 25, чтобы активизировать вариант Case Else.

    Dim Age As Integer
    Age = 25
    
    Select Case Age
    Case 16
    Label1.Text = "Теперь вы можете водить машину!"
    Case 18
    Label1.Text = "Теперь вы можете участвовать в выборах!"
    Case 21
    Label1.Text = "Теперь вы можете пить вино."
    Case 65
    Label1.Text = "Теперь вы можете уволиться и жить в свое удовольствие!"
    Case Else
    Label1.Text = "Вы в полном расцвете сил!"
    End Select

    Использование операторов сравнения вместе со структурой Select Case

    Операторы сравнения позволяют включить в структуру Select Case диапазон значений. Для этого служат такие операторы сравнения Visual Basic, как =, <>, >, <, >= и <=. Чтобы использовать операторы сравнения, вы должны включить в выражение ключевое слово Is или ключевое слово To, определяющие производимое сравнение. Ключевое слово Is говорит компилятору о том, что требуется сравнить переменную с выражением, указанным после ключевого слова Is. Ключевое слово To определяет диапазон значений. Следующая структура использует Is, To и несколько операторов сравнения для того, чтобы проверить значение переменной Age и отобразить одно из пяти сообщений:

    Select Case Age
    Case Is < 13
    Label1.Text = "Радуйся своему детству!"
    Case 13 To 19
    Label1.Text = "Радуйся своей молодости!"
    Case 21
    Label1.Text = "Пей вино с друзьями."
    Case Is > 100
    Label1.Text = "Прекрасно выглядишь!"
    Case Else
    Label1.Text = "Вы в полном расцвете сил."
    End Select

    Если значение переменной Age меньше 13, отображается сообщение "Радуйся своему детству!" Для возраста от 13 до 19 лет отображается сообщение "Радуйся своей молодости!", и так далее.

    Структура выбора Select Case обычно гораздо яснее, чем структура If...Then, и более эффективна, когда вы на основе значения переменной или свойства делаете три или более ветвей. Однако когда вы делаете два или менее сравнений, или когда вы работаете с несколькими различными значениями, то вы, скорее всего, будете использовать структуру выбора If...Then.

    В следующем упражнении вы увидите, как можно использовать структуру Select Case для обработки ввода из поля списка. Используйте для получения ввода свойства ListBox1.Text и ListBox1.SelectedIndexChanged, а затем для отображения приветствия на одном из четырех языков структуру Select Case.

    Использование структуры Select Case для обработки списка

  • В меню File (Файл) щелкните на New (Создать), а затем Project (Проект). Появится диалоговое окно New Project (Создать проект).
  • В папке c:\vbnet03sbs\Гл.6 создайте новый проект Windows Application (Приложение Windows) на Visual Basic с именем My Case Greeting. В Конструкторе Windows Forms появится пустая форма.
  • Щелкните на элементе управления Label на закладке Windows Forms окна области элементов, а затем нарисуйте в верхней части формы большую метку, которая будет отображать название программы.
  • Под большой меткой названия нарисуйте метку поменьше.
  • Щелкните в области элементов на элементе управления ListBox, а затем нарисуйте под двумя имеющимися метками поле списка.
  • Для отображения вывода программы нарисуйте под полем списка еще две небольшие метки.
  • В области элементов выберите элемент управления Button, и нарисуйте в нижней части формы маленькую кнопку.
  • Щелкните на кнопке Properties (Свойства) стандартной панели инструментов, а затем установите свойства объектов в соответствии со следующей таблицей. Также установите свойства Name, так как понадобится следить сразу за многими объектами вашей формы.

    Объект Свойство Установка
    Form1 Text Приветствие
    Label1 Font Times New Roman, Bold (Жирный), 12-point (12 пунктов)
    Name lblTitle
    Text "Интернациональная программа приветствий"
    Label2 Name lblTextBoxLabel
    Text "Выберите страну"
    Label3 Font 10 пунктов
    Name lblCountry
    Text пустой (empty)
    Label4 BorderStyle Fixed3D
    ForeColor Red (Красный)
    Name lblGreeting
    Text пустой (empty)
    ListBox1 Name lstCountryBox
    Button1 Name btnQuit
    Text "Выход"

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

    Теперь нужно ввести код программы для инициализации списка.

  • Сделайте двойной щелчок мышью на форме. В Редакторе кода появится процедура события Form1_Load.
  • Для инициализации списка введите следующий код программы:

    lstCountryBox.Items.Add("Англия")
    lstCountryBox.Items.Add("Германия")
    lstCountryBox.Items.Add("Мексика")
    lstCountryBox.Items.Add("Италия")
    lstCountryBox.Items.Add("Россия")

    Для добавления элементов в список формы эти строки используют метод Add объекта список.

  • Чтобы переключиться обратно в Конструктор Windows Forms, щелкните на закладке Form1.vb [Design] в верхней части Редактора кода, а затем сделайте двойной щелчок мышью на объекте списка в вашей форме, чтобы отредактировать его процедуру события. В Редакторе кода появится процедура события lstCountryBox_SelectedIndexChanged.
  • Для обработки выбора, сделанного пользователем в списке, введите следующие строки:

    lblCountry.Text = lstCountryBox.Text
    Select Case lstCountryBox.SelectedIndex
    Case 0
    lblGreeting.Text = "Hello, programmer"
    Case 1
    lblGreeting.Text = "Hallo, programmierer"
    Case 2
    lblGreeting.Text = "Hola, programador"
    Case 3
    lblGreeting.Text = "Ciao, programmatore"
    Case 4
    lblGreeting.Text = "Здравствуй, программист"
    End Select

    Первая строка копирует имя выбранного элемента списка в свойство Text третьей метки формы (которую вы переименовали в lblCountry). Наиболее важным свойством, использованным в этом операторе, является lstCountryBox.Text, которое содержит текст элемента, выбранного в списке. Остальные операторы являются частью структуры выбора Select Case. Эта структура использует в качестве проверяемой переменной свойство lstCountryBox.SelectedIndex и сравнивает его с несколькими значениями. Свойство SelectedIndex всегда содержит номер выбранного элемента списка; самый первый элемент имеет номер 0, второй элемент - номер 1, следующий - 2, и т.д. С помощью SelectedIndex структура Select Case может быстро определить, что выбрал пользователь, и отобразить верное приветствие.

  • Снова откройте форму и сделайте двойной щелчок мышью на кнопке Выход ( btnQuit ). В Редакторе кода появится процедура события btnQuit_Click.
  • Введите в этой процедуре события End.
  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на стандартной панели инструментов. Теперь запустите программу и посмотрите, как работает оператор Select Case. Готовый проект Case Greeting расположен в папке c:\vbnet03sbs\Гл.6\case greeting.
  • Чтобы запустить программу, щелкните на кнопке Start (Начать) стандартной панели инструментов.
  • Щелкните в списке Выберите страну на названии каждой из стран. Для каждой из перечисленных стран программа отображает приветствие. На иллюстрации показано приветствие для Италии.

  • Чтобы остановить программу, щелкните на кнопке Выход. Программа остановится, и вернется среда разработки.
  • В этой лекции вы закончили работать со структурами выбора If...Then и Select Case. Однако далее в этой книге у вас будет еще несколько возможностей поработать с ними. If...Then и Select Case - это два из наиболее важных и ключевых механизмов Visual Basic, и вы обнаружите, что будете использовать их почти в каждой программе.

    Следующий шаг: обнаружение событий мыши

    В начале лекции мы обсудили несколько событий, на которые могут реагировать программы, написанные на Visual Basic .NET, и узнали, как управлять различными типами событий с помощью структур выбора If и Select Case. В этом разделе вы добавите в программу Case Greeting обработчик события, который обнаруживает, когда указатель мыши на некоторое время "зависает" над полем списка с названиями стран. Вы напишите специальную процедуру - обработчик события - создав процедуру события поля списка для события MouseHover - одного из нескольких действий, связанных с мышью, следить за которыми и обрабатывать которые может Visual Basic .NET. Если пользователь некоторое время будет удерживать мышь над списком стран, но не будет делать выбора из-за того, что не будет знать, как это сделать, или из-за того, что будет занят чем-то другим, эта процедура события будет выводить сообщение "Пожалуйста, выберите страну".

    Добавление обработчика события мыши

  • Откройте Редактор кода, если он еще не открыт.
  • В верхней части Редактора кода щелкните мышью на стрелке раскрывающегося списка Class Name (Имя класса), а затем на объекте lstCountryBox. (Используйте функцию ToolTip, которая поможет вам узнать элементы Visual Studio.)
  • Щелкните на стрелке раскрывающегося списка Method Name (Имя метода), а затем на событии MouseHover. Visual Basic откроет в Редакторе кода процедуру события lstCountryBox_MouseHover, как показано ниже.

    Каждый объект формы имеет одну процедуру события, которая автоматически открывается при двойном щелчке мышью на этом объекте формы. Остальные процедуры событий необходимо открывать с помощью списка Method Name. Когда вы создаете процедуру события для работы с одним из событий объекта, она называется обработчиком события.

  • Введите в этой процедуре события lstCountryBox_MouseHover следующие операторы программы:

    If lstCountryBox.SelectedIndex < 0 Or _
    lstCountryBox.SelectedIndex > 4 Then
    lblGreeting.Text = "Пожалуйста, выберите страну"
    End If

    Оператор If проверяет с помощью двух условных операторов и оператора Or свойство SelectedIndex объекта списка. Обработчик события предполагает, что если свойство SelectedIndex содержит значение в диапазоне от 0 до 4, то пользователю не требуется помощь в выборе названия страны. Но если свойство SelectedIndex содержит значение, выходящее за этот диапазон, то обработчик события выводит в метке приветствия в нижней части формы сообщение "Пожалуйста, выберите страну". Это сообщение появляется, когда пользователь задерживает мышь над полем списка, и исчезает, когда название страны выбрано.

  • Чтобы запустить программу, щелкните на кнопке Start (Начать).
  • Подведите указатель мыши к списку стран и немного подержите над ним. В метке появится сообщение "Пожалуйста выберите страну", напечатанное красными буквами, как показано ниже.

  • Щелкните в поле списка на названии страны. В метке появится приветствие на требуемом языке, а справочное сообщение исчезнет.
  • Чтобы выйти из программы, щелкните на кнопке Выход. Вы узнали, как обрабатывать в программе события мыши!
  • Краткая справка по лекции 6

    Чтобы Сделайте следующее
    Написать условное выражение Используйте между двумя значениями один из следующих операторов сравнения: =, <>, >, <, >= или <=
    Использовать структуру выбора If...Then

    Используйте следующий синтаксис:

    If условие1 Then
    Операторы, исполняемые, когда условие1 равно True
    ElseIf условие2 Then
    Операторы, исполняемые, когда условие2 равно True
    Else
    Операторы, исполняемые, когда ни одно из условий  не равно True.
    End If
    Использовать структуру выбора Select Case

    Используйте следующий синтаксис:

    Select Case переменная
    Case значение1
    Операторы, исполняемые, если значение переменной совпадает со значением1
    Case значение2
    Операторы, исполняемые, если значение переменной совпадает со значением2
    Case Else
    Операторы, исполняемые, если со значением переменной  не совпадает ни один из вариантов
    End Select
    Сделать в условном выражении два сравнения Используйте между сравнениями логический оператор (And, Or, Not или Xor).
    "Закоротить" оператор If...Then В Visual Basic .NET операторы If...Then могут быть "закорочены" тогда, когда используются операторы AndAlso и OrElse и указаны два или более условных выражений. В зависимости от результатов первого сравнения, Visual Basic .NET может не проводить дополнительных сравнений, и оператор окажется укороченным.
    Написать обработчик события В Редакторе кода щелкните в раскрывающемся списке Class Name (Имя класса) на имени объекта, а затем в раскрывающемся списке Method Name (Имя метода) на названии события. Добавьте в процедуру события (или обработчик события) операторы программы, которые выполняют при обработке события полезную работу.
    Страницы:

    В этой лекции вы узнаете, как:

  • писать условные выражения;
  • использовать оператор If...Then для создания перехода по условию;
  • "закоротить" оператор If...Then ;
  • использовать оператор Select Case для выбора одного варианта из нескольких возможных;
  • обнаруживать события мыши и управлять ими.
  • В этой лекции вы узнаете, как выполнить определенную область кода программы в зависимости от данных, введенных пользователем. Вы также узнаете, как просмотреть значения свойств объектов с помощью условных операторов, а затем, в зависимости от полученных результатов, выполнить определенный программный код.

    Что нового в Visual Basic .NET?

    Visual Basic .NET содержит два новых логических оператора с именами AndAlso и OrElse. В условном операторе (который содержит несколько условий, таком, как структура If...Then ), не всегда требуется вычислять все условия. Пропуск условий иногда называется "закорачиванием" и может определяться с помощью операторов AndAlso и OrElse.

    Программирование на основе событий

    До сих пор программы этой книги отображали на экране меню, объекты и диалоговые окна и предлагали пользователям произвести какие-то действия с элементами на экране в заданном порядке. Пока пользователь выполнял действия, программы терпеливо ожидали его реакции, а затем обрабатывали то, что он ввел. В программистских кругах эта методология известна как программирование на основе событий. Вы строите программу, создавая группу "умных" объектов, которые знают, как реагировать на попытки пользователя взаимодействовать с ними, а затем обрабатываете ввод с помощью процедур событий, ассоциированных с этими объектами. Следующая диаграмма показывает, как работает программа на основе событий, написанная на Visual Basic.

    Данные в программу могут также поступать от самого компьютера. Например, ваша программа может получать уведомление о доставке сообщения по электронной почте, или о том, что по системным часам прошел некоторый период времени. Эти события генерирует компьютер, а не пользователь. Независимо от того, как генерируется событие, Visual Basic реагирует на него, вызывая процедуру события, ассоциированную с объектом, который принял событие. До сих пор вы работали, в основном, с событиями Click, CheckedChanged и SelectedIndexChanged. Однако объекты Visual Basic также могут реагировать и на другие типы событий.

    События, поддерживаемые объектами Visual Basic

    Каждый объект в Visual Basic имеет предопределенный набор событий, на которые он может реагировать. Список этих событий можно увидеть, выделив имя объекта в раскрывающемся списке Class Name (Имя класса) в верхней части Редактора кода и щелкнув на раскрывающемся списке Method Name (Имя метода). (Имена событий Microsoft Visual Studio помечает значком в форме молнии.) Вы можете написать процедуру обработки любого события из списка, и, если при выполнении программы это событие произойдет, Visual Basic выполнит процедуру события, ассоциированную с ним. Например, объект списка поддерживает более 60 событий, включая Click, DoubleClick, DragDrop, DragOver, GotFocus, KeyDown, KeyPress, KeyUp, LostFocus, MouseDown, MouseMove, MouseUp, MouseHover, TextChanged и Validated. В ваших приложениях, вероятно, не потребуется программировать более трех или четырех из этих событий, но при создании элементов интерфейса следует знать, что у вас есть такой богатый выбор. На следующей иллюстрации показана часть списка событий в Редакторе кода для объекта ListBox (список).

    Управление программой Visual Basic по событиям означает, что большинство производимых вычислений будет выполняться в процедурах событий. Эти блоки кода могут обрабатывать ввод данных, вычислять новые значения, отображать полученные результаты или выполнять другие задачи. В предыдущей лекции вы узнали о том, как для выполнения вычислений в процедурах событий использовать переменные, операторы и математические формулы. В этой лекции вы узнаете, как использовать для сравнения переменных, свойств и значений условные структуры, а также узнаете, как в соответствии с результатом этого сравнения выполнять один или несколько операторов программы. В лекции 7 вы будете использовать циклы для повторного выполнения групп операторов до тех пор, пока не будет достигнуто некоторое значение, или пока не выполнится конкретное условие. Вместе эти структуры помогут вам создавать процедуры событий так, что они смогут реагировать почти на любую ситуацию.

    Использование условных выражений

    Один из наиболее мощных инструментов для обработки информации в процедуре события - это условное выражение. Условное выражение - это часть полного оператора программы, которая задает вопрос "истина или ложь?" по поводу содержимого свойства, переменной или другой части данных кода программы. Например, условное выражение

    Price < 100

    равно True, если переменная Price содержит значение, которое меньше 100, и равно False, если Price содержит значение, которое больше или равно 100. В условных выражениях вы можете использовать следующие операторы сравнения.

    Оператор сравнения Значение
    = Равно
    <> Не равно
    > Больше, чем
    < Меньше, чем
    >= Больше или равно
    <= Меньше или равно

    Совет. Выражения, которые могут быть вычислены как True или False, также известны как Boolean (булевы, логические). Вы можете присвоить значения типа Boolean некоторым свойствам объектов или переменным типа Boolean, которые были созданы с помощью оператора Dim и ключевого слово As Boolean.

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

    Условное выражение Результат
    10 <> 20 True (истина, 10 не равно 20)
    Score <20 True, если Score меньше 20; в противном случае False
    Score = Label1.Text True, если свойство Text объекта Label1 содержит такое же значение, что и переменная Score; в противном случае False
    TextBox1.Text = "Билл" True, если в первом текстовом поле содержится слово "Билл"; в противном случае False

    Условные структуры If ... Then

    Условные выражения, используемые в специальных блоках операторов, называемых условными структурами (структурами выбора), управляют исполнением других операторов вашей программы, и последовательностью их исполнения. Для вычисления в программе условия и выбора направления действий в зависимости от результата этого вычисления используется структура выбора If...Then. В самой простой форме структура выбора If...Then записывается в одну строку:

    If условие Then оператор

    где "условие" - это условное выражение, а "оператор" - это любой оператор программы Visual Basic. Например,

    If Score >= 20 Then Label1.Text = "Вы выиграли!"

    является условной структурой If...Then, которая использует условное выражение

    Score >= 20

    для определения того, должна ли программа установить свойство Text объекта Label1 на значение "Вы выиграли!". Если переменная Score содержит значение, которое больше или равно 20, то Visual Basic устанавливает свойство Text ; в противном случае он пропускает выражение присвоения и исполняет следующую строку кода процедуры события. Этот вид сравнения всегда дает в результате значение True или False. Условное выражение никогда не дает в результате значения "может быть".

    Проверка нескольких условий в структуре выбора If ... Then

    Visual Basic также поддерживает структуру выбора If...Then, которая позволяет включать в нее несколько условных выражений. Этот блок операторов может быть длиной в несколько строк и содержать ключевые слова ElseIf, Else и End If.

    If  условие1  Then
    операторы, исполняемые, если условие1 равно True
    ElseIf  условие2  Then
    операторы, исполняемые, если условие2 равно True
    [Здесь могут быть добавлены дополнительные блоки ElseIf и операторы]
    Else
    операторы, исполняемые, если ни одно из условий не равно True
    End If

    В этой структуре сначала вычисляется условие1. Если это условное выражение равно True, то выполняется блок операторов, расположенный непосредственно за ним. (В него вы можете включить один или несколько операторов программы.) Если первое условие не равно True, то проверяется второе условное выражение ( условие2 ). Если второе условие равно True, то выполняется второй блок операторов. Если ни одно из условий не равно True, то выполняются операторы, следующие за ключевым словом Else. Вся структура завершается ключевыми словами End If.

    Следующий код показывает, как можно использовать многострочную структуру If...Then для определения количества налоговых сборов в гипотетической налоговой декларации. Суммы доходов и процентные ставки для единообразия взяты из американского налогового реестра за 2001 год.

    Dim AdjustedIncome, TaxDue As Double
    AdjustedIncome = 32000
    
    If AdjustedIncome <= 27050 Then '15% ставка налога
    TaxDue = AdjustedIncome * 0.15
    ElseIf AdjustedIncome <= 65550 Then '28% ставка налога
    TaxDue = 4057.5 + ((AdjustedIncome - 27050) * 0.28)
    ElseIf AdjustedIncome <= 136750 Then '31% ставка налога
    TaxDue = 14837.5 + ((AdjustedIncome - 65550) * 0.31)
    ElseIf AdjustedIncome <= 297350 Then '36% ставка налога
    TaxDue = 36909.5 + ((AdjustedIncome - 136750) * 0.36)
    Else '39.6% ставка налога
    TaxDue = 94725.5 + ((AdjustedIncome - 297350) * 0.396)
    End If

    Важно! Порядок условных выражений в конструкции If...Then и ElseIf критически важен. Что было бы, если бы вы изменили порядок условных выражений в примере вычисления налогов, и перечислили бы ставки, начиная с самой большой? Налогоплательщики из групп, платящих 15%, 28% и 31% попали бы в группу 36% ставки, так как они все имели бы доход, который меньше или равен 297 350. (Visual Basic останавливается на первом условном выражении, которое равно True, даже если остальные также равны True.) Так как все условные выражения в этом примере проверяют значение одной и той же переменной, то, чтобы налогоплательщики попали в правильные группы, они должны быть приведены в порядке возрастания. Мораль: когда вы используете более одного условного выражения, тщательно обдумайте их порядок.

    Эта структура выбора на первом и последующих уровнях налогообложения проверяет переменную с двойной точностью AdjustedIncome до тех пор, пока одно из условных выражений не окажется равным True, а затем определяет сумму налогов данного налогоплательщика. С небольшими видоизменениями она может быть использована для вычисления налогов любого налогоплательщика, платящего налоги по прогрессивной шкале налогов, такой, какая применяется в Соединенных Штатах. Полагая, что это полный список налоговых ставок, что он не устарел, и что значение в переменной AdjustedIncome корректно, эта программа даст правильную сумму подлежащих уплате в 2001 году налогов для любого американского налогоплательщика. Если ставки налогов изменятся, то нет ничего проще, чем изменить эти условные выражения. С помощью использования дополнительной структуры выбора, определяющей статус налогоплательщика, программа может быть легко расширена на всех американских налогоплательщиков. В следующем упражнении вы будете использовать структуру выбора If...Then для проверки пользователей при их регистрации в программе. Используя такую же программную логику, вы можете написать сетевое приложение, которое включает проверку пользователей.

    Проверка пользователей с помощью If ... Then

  • Запустите Visual Studio и создайте в папке c:\vbnet03sbs\Гл.6 новый проект Windows Application (Приложение Windows) на Visual Basic с именем My User Validation. Будет создан новый проект и в Windows Forms Designer (Конструктор Windows Forms) появится пустая форма.
  • С помощью элемента управления Button на закладке Windows Forms окна области элементов создайте кнопку в верхнем левом углу формы.
  • Установите свойство Text этой кнопки равным "Войти".
  • С помощью элемента управления PictureBox создайте на форме под кнопкой прямоугольную область вывода изображений. Ваша форма должна выглядеть примерно так.

  • Сделайте двойной щелчок мышью на кнопке Войти. В Редакторе кода появится процедура события Button1_Click.
  • Введите в этой процедуре события следующие операторы:

    Dim UserName As String
    UserName = InputBox("Введите ваше имя.")
    If UserName = "Генри" Then
    MsgBox("Добро пожаловать, Генри! Как поживаешь?")
    PictureBox1.Image = System.Drawing.Image.FromFile _
    ("c:\vbnet03sbs\Гл.6\henry photo.jpg")
    ElseIf UserName = "Феликс" Then
    MsgBox("Добро пожаловать, Феликс! Сыграем?")
    PictureBox1.Image = System.Drawing.Image.FromFile _
    ("c:\vbnet03sbs\Гл.6\felix photo.jpg")
    Else
    MsgBox("Извините, я вас не знаю.")
    End		'выход из программы
    End If

    Пробел и символ продолжения строки (_), использованные после свойств PictureBox1.Image, разбивают слишком длинные операторы программы на четыре строки. Вы можете ввести каждый из этих длинных операторов в одну строку; при этом Редактор кода будет прокручиваться вправо.

    Совет. Строки программы в Редакторе кода и Visual Studio могут иметь в длину более 65 000 символов, но обычно проще всего работать со строками, длина которых не превышает 80 символов. Вы можете разбить длинные операторы программы на несколько строк с помощью пробела и символа продолжения строки (_), которые ставятся в конце всех строк выражения, за исключением последней. Однако нельзя использовать символ продолжения строки для разделения строковой константы, заключенной в кавычки.

    Когда вы закончите, ваш экран должен выглядеть так.

  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на стандартной панели инструментов.
  • Щелкните на кнопке Start (Начать) стандартной панели инструментов. Программа запустится на выполнение в среде разработки. На экране появится пустая форма с единственной кнопкой Войти в верхнем левом углу.
  • Щелкните на кнопке Войти. Функция InputBox в процедуре события Button1_Click отображает диалоговое окно, которое просит вас ввести свое имя.
  • Введите Генри, а затем щелкните на OK.

    Примечание. Проверки условий в этой программе учитывают регистр букв, так что убедитесь, что вы ввели "Генри", а не "генри".

    Структура выбора If...Then сравнивает в первом условном выражении имя, которое вы ввели, с именем "Генри". Выражение равно True, и оператор If...Then отображает с помощью функции MsgBox приветственное сообщение.

  • Щелкните в окне сообщения на OK. Окно сообщения закроется, а в области вывода изображений появится фото в формате JPEG.

    Процедура, использованная для загрузки картинки, та же, что была показана в лекциях 3 и 4 этой книги - я использую метод System.Drawing.Image.FromFile, который является частью пространства имен (или библиотеки объектов) System.Drawing. Этот метод специально разработан для загрузки изображений из файлов.

  • Щелкните на кнопке Войти, введите Феликс, а затем щелкните на OK. На этот раз структура выбора выбирает случай ElseIf и пропускает пользователя Феликс в программу. На экране снова с помощью функции MsgBox отображается приветственное сообщение.
  • Щелкните в окне сообщения на OK. В объект вывода изображений загружается фотография в формате JPEG, ассоциированная с этим пользователем, как показано ниже.

  • Щелкните на кнопке Войти, введите Селли, а затем щелкните на OK. Исполняется блок Else структуры выбора, и в окне сообщения появляется следующее сообщение.

  • Чтобы закрыть окно сообщения, щелкните на OK. Окно сообщения закроется, и программа остановится. Ваш код не допустил неавторизованного пользователя к использованию программы. Полная программа User Validation доступна на диске в папке c:\vbnet03sbs\ Гл.6\user validation.
  • Использование логических операторов в условных выражениях

    Если вы хотите включить в вашу структуру выбора более одного критерия выбора, то в структуре If...Then и ElseIf вы можете проверять более одного условного выражения. Эти дополнительные условия объединяются вместе с помощью одного или большего количества логических операторов, перечисленных в следующей таблице:

    Логический оператор Значение
    And Если оба условных выражения равны True, то результат равен True.
    Or Если одно из условных выражений равно True, то результат равен True.
    Not Если условное выражение равно False, то результат равен True. Если условное выражение равно True, то результат равен False.
    Xor Если одно, и только одно, из условных выражений равно True, то результат равен True. Если оба равны True или оба равны False, то результат равен False. (Xor означает "исключающее или".)

    Совет. Когда ваша программа проверяет сложное выражение, которое объединяет различные типы операторов, то сначала она обрабатывает математические операторы, затем операторы сравнения, и только в третью очередь логические операторы.

    Следующая таблица содержит список нескольких примеров работы с логическими операторами. В этих выражениях предполагается, что строковая переменная Vehicle содержит значение "Велосипед", а целочисленная переменная Price содержит значение 200.

    Логическое выражение Результат
    Vehicle = " Велосипед " And Price < 300 True (оба условия равны True)
    Vehicle = "Машина" Or Price < 500 True (одно из условий равно True)
    Not Price < 100 True (условие равно False)
    Vehicle = " Велосипед " Xor Price < 300 False (оба условия равны True)

    В следующем упражнении вы измените программу My User Validation так, чтобы она в процессе авторизации пользователя запрашивала у него пароль. Пользователь будет вводить пароль и вы должны изменить условия в структуре выбора If...Then и ElseIf так, чтобы для проверки введенного пароля они использовали оператор And.

    Добавление защиты паролем с помощью оператора And

  • Отобразите в Редакторе кода процедуру события Button1_Click.
  • Измените оператор Dim в начале этой процедуры события так, чтобы он объявлял также переменную Pass типа String. Используйте синтаксис:

    Dim UserName, Pass As String
  • Между оператором InputBox и оператором If...Then этой процедуры (то есть между второй и третьей его строками) добавьте следующий оператор:

    Pass = InputBox("Введите пароль.")
  • Измените оператор If...Then на следующий:

    If UserName = "Генри" And Pass = "цветок" Then

    Теперь этот оператор включает логический оператор And, который, прежде чем пропустить в систему пользователя Генри, проверяет имя пользователя и пароль.

  • Измените оператор ElseIf на следующий:

    ElseIf UserName = "Феликс" And Pass = "листок" Then

    Логический оператор And добавляет проверку пароля "листок" для пользователя Феликс.

    Совет. Готовое приложение Password Validation находится в папке c:\vbnet03sbs\Гл.6\password validation.

  • Щелкните на кнопке Start (Начать) стандартной панели инструментов. Программа запустится на выполнение в среде разработки.
  • Щелкните на кнопке Войти, введите Генри, а затем щелкните на OK. Программа запросит у вас пароль.
  • Введите цветок, а затем щелкните на OK. Условное выражение And становится равным True, и программа приветствует пользователя Генри.
  • Чтобы закрыть окно сообщения, щелкните на OK.
  • Щелкните на кнопке Войти, введите Феликс, а затем щелкните на OK. Программа запросит у вас пароль.
  • Введите листок, а затем щелкните на OK. Программа пропускает пользователя Феликс - пароли работают!
  • Теперь попробуйте использовать имена пользователей Генри и Феликс с некорректным или пустым паролем. Вы обнаружите, что они не работают, программа завершается и возвращается среда разработки.

    Совет. Если вы хотите написать полноценную версию программы Password Validation, то рассмотрите возможность поместить текстовое поле для ввода пароля непосредственно в форме. Объекты текстового поля поддерживают свойство PasswordChar, которое вы можете использовать для отображения при вводе символов-заменителей вводимых знаков, например звездочки (*), и свойство MaxLength, которое позволяет вам ограничить число вводимых символов.

  • "Закорачивание" с помощью AndAlso и OrElse

    Visual Basic .NET предлагает два логических оператора, которые можно использовать в условных выражениях - AndAlso и OrElse. Эти операторы работают точно так же, как And и Or соответственно, но несколько по-другому вычисляются. Это отличие будет новым для тех программистов, которые уже имеют опыт работы с предыдущими версиями Visual Basic.

    Рассмотрим оператор If, который содержит два условия, связанные оператором AndAlso. Чтобы выполнились операторы структуры If, необходимо, чтобы оба условия были равны True. Если первое условие равно False, то Visual Basic .NET немедленно перейдет к следующей строке или оператору Else, не проверяя второго условия. Такое частичное, или укороченное, вычисление оператора If имеет логический смысл - зачем Visual Basic должен продолжать проверять оператор If, если оба условия не могут быть равны True?

    Оператор OrElse работает аналогичным образом. Рассмотрим оператор If, который содержит два условия, связанные с оператором OrElse. Чтобы выполнились операторы структуры If, необходимо, чтобы хотя бы одно из условий было равны True. Если первое условие равно True, то Visual Basic .NET немедленно перейдет к выполнению операторов в структуре If, не проверяя второго условия.

    Вот пример такой короткой ситуации в Visual Basic .NET - это простая процедура, которая использует оператор If и оператор AndAlso для проверки двух условий и отображения сообщения "Внутри If" при условии, что оба условия равны True:

    Dim Number As Integer = 0
    If Number = 1 AndAlso MsgBox("Проверка второго условия") Then
    MsgBox("Внутри If")
    Else
    MsgBox("Внутри Else")
    End If

    Функция MsgBox сама используется как вторая проверка условия, что несколько необычно, но странная запись полностью корректна и дает нам прекрасную возможность увидеть в деталях, как работает "закорачивание". Текст "Проверка второго условия" появляется в окне сообщения только тогда, когда переменная Number равна 0; в противном случае оператор AndAlso обходит выражение If, и вторая часть условия не вычисляется. Если вы попробуете запустить этот код, помните, что он предназначен только для демонстрации - вы не станете использовать MsgBox в такой записи потому, что на самом деле она ничего не проверяет. Но, изменяя значение переменной Number с 0 на 1 и обратно, вы можете представить себе, как работает оператор AndAlso и обход проверки условий.

    Вот второй пример того, как работает "закорачивание" в Visual Basic .NET, когда два условия проверяются с помощью оператора AndAlso. На этот раз после оператора AndAlso используется более сложное условие ( 7 / HumanAge <= 1 ), которое пересчитывает возраст человека в число собачьих жизней:

    Dim HumanAge As Integer
    HumanAge = 7
    ' Один год для собаки - это семь лет для человека
    If HumanAge <> 0 AndAlso 7 / HumanAge <= 1 Then
    MsgBox("Вам как минимум один ""собачий""  год")
    Else
    MsgBox("Вам менее одного "собачьего" года ")
    End If

    Эта процедура пытается определить, равно ли значение в целой переменной HumanAge, по крайней мере, 7. Она является частью более сложной программы, которая определяет так называемые "собачий" возраст человека, поделив его текущий возраст на 7. (Если вы раньше не слышали о концепции "собачьего" возраста, то слушайте - следуя этой логике, человеку, которому 28 лет, исполнилось 4 "собачьих" года.) Этот код использует в операторе If два условия и может быть использован в различных условиях - я использовал его в процедуре события Click для объекта кнопки. Первое условие проверяет, не равно ли значение переменной HumanAge нулю - я предположил, что пользователь - достаточно здравомыслящий человек, и введет в HumanAge положительный возраст, так как отрицательное значение приведет к неверным результатам. Второе условие проверяет, равен ли возраст человека, по крайней мере, семи. Если оба условия имеют значение True, то в окне сообщения отображается сообщение "Вам как минимум один "собачий" год". Если человеку меньше семи лет, то отображается сообщение "Вам менее одного "собачьего" года". Теперь представьте, что я изменил значение переменной HumanAge с 7 на 0. Что произойдет? Компилятор Visual Basic .NET определяет, что первое условие оператора If становится равным False, и это предотвращает вычисление второго условия, таким образом останавливая, или "закорачивая", оператор If и уберегая нас от ужасной ошибки "деление на ноль", которая возникла бы, если бы мы разделили 7 на 0 (Новое значение переменной HumanAge ). Хотя у нас и есть возможность воспользоваться преимуществами "закорачивания" в Visual Studio .NET, у нас нет такой же возможности в Visual Basic 6. Установка переменной HumanAge на 0 при использовании Visual Basic 6 приведет к возникновению ошибки времени исполнения и обрушению программы, так как вычисляется весь оператор If, а деление на 0 в Visual Basic 6 запрещено.

    В качестве резюме можно сказать, что операторы AndAlso и OrElse в Visual Basic .NET дают программистам на Visual Basic несколько новых возможностей, включая предотвращение потенциальных ошибок времени исполнения и других неожиданных результатов. Стало также возможно увеличить производительность, поместив условия, которые требуют для своего вычисления много времени, в конце условного оператора. Visual Basic .NET не будет выполнять эти дорогостоящие вычисления условий до тех пор, пока это станет необходимо. Однако вы должны тщательно продумать все возможные условия, с которыми могут столкнуться операторы If при изменении состояний переменных во время выполнении программы.

    Структуры выбора Select Case

    Для управления исполнением операторов программы часто применяется структура выбора Select Case. В лекциях 3 и 5 этой книги вы уже использовали структуры Select Case, когда писали процедуры событий для обработки выбора элементов списков и раскрывающихся списков. Структура Select Case аналогична структуре If...Then...ElseIf, но она более эффективна, когда разветвление зависит от одной ключевой переменной. При использовании Select Case ваш код будет удобнее читать.

    Синтаксис структуры Select Case следующий.

    Select Case переменная
    Case значение1
    операторы программы, исполняемые, если переменная содержит значение 1
    Case значение 2
    операторы программы, исполняемые, если переменная содержит значение 2
    Case значение 3
    операторы программы, исполняемые, если переменная содержит значение 3
    ...
    Case Else
    операторы программы, исполняемые, если совпадения не найдено"
    End Select

    Структура Select Case начинается с ключевых слов Select Case и заканчивается ключевыми словами End Select. В качестве переменной вы можете использовать переменную, свойство или другое выражение, которое будет ключевым значением, т.е. проверяемым условием этой структуры. Значения значение 1, значение 2 и значение 3 можно заменить числами, строками или другими значениями, связанными с проверяемым условием. Если одно из этих значений совпадает со значением variable, то выполняются операторы, расположенные за соответствующим ему разделом Case. Затем Visual Basic переходит к строке, расположенной после оператора End Select и начинает с него дальнейшее исполнение кода. Вы можете включить в структуру Select Case любое количество выражений Case, а в каждое из этих выражений Case несколько значений. Если вы перечисляете несколько значений, разделяйте их запятыми.

    В следующем примере показано, как структура Select Case используется в программе для печати нужного сообщения о возрасте человека. Если переменная Age содержит значение 18, то свойству Text объекта метки присваивается строка "Теперь вы можете участвовать в выборах!".

    Dim Age As Integer
    Age = 18
    
    Select Case Age
    Case 16
    Label1.Text = "Теперь вы можете водить машину!"
    Case 18
    Label1.Text = "Теперь вы можете участвовать в выборах!"
    Case 21
    Label1.Text = "Теперь вы можете пить вино."
    Case 65
    Label1.Text = "Теперь вы можете уволиться и жить в свое удовольствие!"
    End Select

    Структура Select Case поддерживает также оператор Case Else, который можно использовать для отображения сообщений, если со значением переменной не совпадает ни одно из предшествующих значений. Вот как Case Else будет работать в следующем примере. Обратите внимание, что я изменил значение Age на 25, чтобы активизировать вариант Case Else.

    Dim Age As Integer
    Age = 25
    
    Select Case Age
    Case 16
    Label1.Text = "Теперь вы можете водить машину!"
    Case 18
    Label1.Text = "Теперь вы можете участвовать в выборах!"
    Case 21
    Label1.Text = "Теперь вы можете пить вино."
    Case 65
    Label1.Text = "Теперь вы можете уволиться и жить в свое удовольствие!"
    Case Else
    Label1.Text = "Вы в полном расцвете сил!"
    End Select

    Использование операторов сравнения вместе со структурой Select Case

    Операторы сравнения позволяют включить в структуру Select Case диапазон значений. Для этого служат такие операторы сравнения Visual Basic, как =, <>, >, <, >= и <=. Чтобы использовать операторы сравнения, вы должны включить в выражение ключевое слово Is или ключевое слово To, определяющие производимое сравнение. Ключевое слово Is говорит компилятору о том, что требуется сравнить переменную с выражением, указанным после ключевого слова Is. Ключевое слово To определяет диапазон значений. Следующая структура использует Is, To и несколько операторов сравнения для того, чтобы проверить значение переменной Age и отобразить одно из пяти сообщений:

    Select Case Age
    Case Is < 13
    Label1.Text = "Радуйся своему детству!"
    Case 13 To 19
    Label1.Text = "Радуйся своей молодости!"
    Case 21
    Label1.Text = "Пей вино с друзьями."
    Case Is > 100
    Label1.Text = "Прекрасно выглядишь!"
    Case Else
    Label1.Text = "Вы в полном расцвете сил."
    End Select

    Если значение переменной Age меньше 13, отображается сообщение "Радуйся своему детству!" Для возраста от 13 до 19 лет отображается сообщение "Радуйся своей молодости!", и так далее.

    Структура выбора Select Case обычно гораздо яснее, чем структура If...Then, и более эффективна, когда вы на основе значения переменной или свойства делаете три или более ветвей. Однако когда вы делаете два или менее сравнений, или когда вы работаете с несколькими различными значениями, то вы, скорее всего, будете использовать структуру выбора If...Then.

    В следующем упражнении вы увидите, как можно использовать структуру Select Case для обработки ввода из поля списка. Используйте для получения ввода свойства ListBox1.Text и ListBox1.SelectedIndexChanged, а затем для отображения приветствия на одном из четырех языков структуру Select Case.

    Использование структуры Select Case для обработки списка

  • В меню File (Файл) щелкните на New (Создать), а затем Project (Проект). Появится диалоговое окно New Project (Создать проект).
  • В папке c:\vbnet03sbs\Гл.6 создайте новый проект Windows Application (Приложение Windows) на Visual Basic с именем My Case Greeting. В Конструкторе Windows Forms появится пустая форма.
  • Щелкните на элементе управления Label на закладке Windows Forms окна области элементов, а затем нарисуйте в верхней части формы большую метку, которая будет отображать название программы.
  • Под большой меткой названия нарисуйте метку поменьше.
  • Щелкните в области элементов на элементе управления ListBox, а затем нарисуйте под двумя имеющимися метками поле списка.
  • Для отображения вывода программы нарисуйте под полем списка еще две небольшие метки.
  • В области элементов выберите элемент управления Button, и нарисуйте в нижней части формы маленькую кнопку.
  • Щелкните на кнопке Properties (Свойства) стандартной панели инструментов, а затем установите свойства объектов в соответствии со следующей таблицей. Также установите свойства Name, так как понадобится следить сразу за многими объектами вашей формы.

    Объект Свойство Установка
    Form1 Text Приветствие
    Label1 Font Times New Roman, Bold (Жирный), 12-point (12 пунктов)
    Name lblTitle
    Text "Интернациональная программа приветствий"
    Label2 Name lblTextBoxLabel
    Text "Выберите страну"
    Label3 Font 10 пунктов
    Name lblCountry
    Text пустой (empty)
    Label4 BorderStyle Fixed3D
    ForeColor Red (Красный)
    Name lblGreeting
    Text пустой (empty)
    ListBox1 Name lstCountryBox
    Button1 Name btnQuit
    Text "Выход"

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

    Теперь нужно ввести код программы для инициализации списка.

  • Сделайте двойной щелчок мышью на форме. В Редакторе кода появится процедура события Form1_Load.
  • Для инициализации списка введите следующий код программы:

    lstCountryBox.Items.Add("Англия")
    lstCountryBox.Items.Add("Германия")
    lstCountryBox.Items.Add("Мексика")
    lstCountryBox.Items.Add("Италия")
    lstCountryBox.Items.Add("Россия")

    Для добавления элементов в список формы эти строки используют метод Add объекта список.

  • Чтобы переключиться обратно в Конструктор Windows Forms, щелкните на закладке Form1.vb [Design] в верхней части Редактора кода, а затем сделайте двойной щелчок мышью на объекте списка в вашей форме, чтобы отредактировать его процедуру события. В Редакторе кода появится процедура события lstCountryBox_SelectedIndexChanged.
  • Для обработки выбора, сделанного пользователем в списке, введите следующие строки:

    lblCountry.Text = lstCountryBox.Text
    Select Case lstCountryBox.SelectedIndex
    Case 0
    lblGreeting.Text = "Hello, programmer"
    Case 1
    lblGreeting.Text = "Hallo, programmierer"
    Case 2
    lblGreeting.Text = "Hola, programador"
    Case 3
    lblGreeting.Text = "Ciao, programmatore"
    Case 4
    lblGreeting.Text = "Здравствуй, программист"
    End Select

    Первая строка копирует имя выбранного элемента списка в свойство Text третьей метки формы (которую вы переименовали в lblCountry). Наиболее важным свойством, использованным в этом операторе, является lstCountryBox.Text, которое содержит текст элемента, выбранного в списке. Остальные операторы являются частью структуры выбора Select Case. Эта структура использует в качестве проверяемой переменной свойство lstCountryBox.SelectedIndex и сравнивает его с несколькими значениями. Свойство SelectedIndex всегда содержит номер выбранного элемента списка; самый первый элемент имеет номер 0, второй элемент - номер 1, следующий - 2, и т.д. С помощью SelectedIndex структура Select Case может быстро определить, что выбрал пользователь, и отобразить верное приветствие.

  • Снова откройте форму и сделайте двойной щелчок мышью на кнопке Выход ( btnQuit ). В Редакторе кода появится процедура события btnQuit_Click.
  • Введите в этой процедуре события End.
  • Чтобы сохранить изменения, щелкните на кнопке Save All (Сохранить все) на стандартной панели инструментов. Теперь запустите программу и посмотрите, как работает оператор Select Case. Готовый проект Case Greeting расположен в папке c:\vbnet03sbs\Гл.6\case greeting.
  • Чтобы запустить программу, щелкните на кнопке Start (Начать) стандартной панели инструментов.
  • Щелкните в списке Выберите страну на названии каждой из стран. Для каждой из перечисленных стран программа отображает приветствие. На иллюстрации показано приветствие для Италии.

  • Чтобы остановить программу, щелкните на кнопке Выход. Программа остановится, и вернется среда разработки.
  • В этой лекции вы закончили работать со структурами выбора If...Then и Select Case. Однако далее в этой книге у вас будет еще несколько возможностей поработать с ними. If...Then и Select Case - это два из наиболее важных и ключевых механизмов Visual Basic, и вы обнаружите, что будете использовать их почти в каждой программе.

    Следующий шаг: обнаружение событий мыши

    В начале лекции мы обсудили несколько событий, на которые могут реагировать программы, написанные на Visual Basic .NET, и узнали, как управлять различными типами событий с помощью структур выбора If и Select Case. В этом разделе вы добавите в программу Case Greeting обработчик события, который обнаруживает, когда указатель мыши на некоторое время "зависает" над полем списка с названиями стран. Вы напишите специальную процедуру - обработчик события - создав процедуру события поля списка для события MouseHover - одного из нескольких действий, связанных с мышью, следить за которыми и обрабатывать которые может Visual Basic .NET. Если пользователь некоторое время будет удерживать мышь над списком стран, но не будет делать выбора из-за того, что не будет знать, как это сделать, или из-за того, что будет занят чем-то другим, эта процедура события будет выводить сообщение "Пожалуйста, выберите страну".

    Добавление обработчика события мыши

  • Откройте Редактор кода, если он еще не открыт.
  • В верхней части Редактора кода щелкните мышью на стрелке раскрывающегося списка Class Name (Имя класса), а затем на объекте lstCountryBox. (Используйте функцию ToolTip, которая поможет вам узнать элементы Visual Studio.)
  • Щелкните на стрелке раскрывающегося списка Method Name (Имя метода), а затем на событии MouseHover. Visual Basic откроет в Редакторе кода процедуру события lstCountryBox_MouseHover, как показано ниже.

    Каждый объект формы имеет одну процедуру события, которая автоматически открывается при двойном щелчке мышью на этом объекте формы. Остальные процедуры событий необходимо открывать с помощью списка Method Name. Когда вы создаете процедуру события для работы с одним из событий объекта, она называется обработчиком события.

  • Введите в этой процедуре события lstCountryBox_MouseHover следующие операторы программы:

    If lstCountryBox.SelectedIndex < 0 Or _
    lstCountryBox.SelectedIndex > 4 Then
    lblGreeting.Text = "Пожалуйста, выберите страну"
    End If

    Оператор If проверяет с помощью двух условных операторов и оператора Or свойство SelectedIndex объекта списка. Обработчик события предполагает, что если свойство SelectedIndex содержит значение в диапазоне от 0 до 4, то пользователю не требуется помощь в выборе названия страны. Но если свойство SelectedIndex содержит значение, выходящее за этот диапазон, то обработчик события выводит в метке приветствия в нижней части формы сообщение "Пожалуйста, выберите страну". Это сообщение появляется, когда пользователь задерживает мышь над полем списка, и исчезает, когда название страны выбрано.

  • Чтобы запустить программу, щелкните на кнопке Start (Начать).
  • Подведите указатель мыши к списку стран и немного подержите над ним. В метке появится сообщение "Пожалуйста выберите страну", напечатанное красными буквами, как показано ниже.

  • Щелкните в поле списка на названии страны. В метке появится приветствие на требуемом языке, а справочное сообщение исчезнет.
  • Чтобы выйти из программы, щелкните на кнопке Выход. Вы узнали, как обрабатывать в программе события мыши!
  • Краткая справка по лекции 6

    Чтобы Сделайте следующее
    Написать условное выражение Используйте между двумя значениями один из следующих операторов сравнения: =, <>, >, <, >= или <=
    Использовать структуру выбора If...Then

    Используйте следующий синтаксис:

    If условие1 Then
    Операторы, исполняемые, когда условие1 равно True
    ElseIf условие2 Then
    Операторы, исполняемые, когда условие2 равно True
    Else
    Операторы, исполняемые, когда ни одно из условий  не равно True.
    End If
    Использовать структуру выбора Select Case

    Используйте следующий синтаксис:

    Select Case переменная
    Case значение1
    Операторы, исполняемые, если значение переменной совпадает со значением1
    Case значение2
    Операторы, исполняемые, если значение переменной совпадает со значением2
    Case Else
    Операторы, исполняемые, если со значением переменной  не совпадает ни один из вариантов
    End Select
    Сделать в условном выражении два сравнения Используйте между сравнениями логический оператор (And, Or, Not или Xor).
    "Закоротить" оператор If...Then В Visual Basic .NET операторы If...Then могут быть "закорочены" тогда, когда используются операторы AndAlso и OrElse и указаны два или более условных выражений. В зависимости от результатов первого сравнения, Visual Basic .NET может не проводить дополнительных сравнений, и оператор окажется укороченным.
    Написать обработчик события В Редакторе кода щелкните в раскрывающемся списке Class Name (Имя класса) на имени объекта, а затем в раскрывающемся списке Method Name (Имя метода) на названии события. Добавьте в процедуру события (или обработчик события) операторы программы, которые выполняют при обработке события полезную работу.
    Вернуться к учебному плану