В книге описаны приемы работы в среде .NET, а также программирование на языке Visual Basic .NET. Обучение строится на практической основе, с первого занятия читатель создает готовые приложения. Конструкции языка Visual Basic, а также переменные, циклы, управляющие структуры, массивы и другие элементы языка рассматриваются последовательно, по мере усложнения примеров. Вниманию читателя предлагается также материал, посвященный объектно-ориентированному программированию, проектированию приложений и методам обработки ошибок. Книга будет полезна начинающим программис
там и студентам.
Содержание
Предисловие
Введение
Тема 1. Знакомство с Visual Basic .NET
Создание заставки Copyright
Занятие 1. Создание Windows-приложений
Запуск и настройка Visual Studio .NET
Создание решения для заставки Copyright
Окна Windows Form Designer и Solution Explorer
Окно Properties
Свойства объекта Windows Form
Сохранение решения и выход из Visual Studio .NET
Занятие 2. Работа с элементами управления
Окно Toolbox
Использование инструмента Label
Одновременное изменение свойства нескольких элементов управления
Использование меню Format
Применение инструмента PictureBox
Использование инструмента Button
Запуск и завершение работы приложения
Создание программы на Visual Basic .NET
Занятие 3. Завершение работы над заставкой Copyright
Применение инструмента Timer
Настройка свойства FormBorderStyle
Свойства MinimizeBox, MaximizeBox и ControlBox
Тема 2. Этапы разработки приложений
Создание приложения для приема заказов
Занятие 1. Проектирование объектно-ориентированного приложения
Порядок создания объектно-ориентированного управляемого событиями
приложения
Описание объектов приложения и выполняемых ими задач
Разработка эскиза интерфейса пользователя
Занятие 2. Создание интерфейса пользователя
Размещение элементов интерфейса
Применение графики, шрифтов и цвета
Выбор стиля рамки элемента управления
Создание надписи на элементе управления
Назначение клавиш быстрого доступа
Настройка свойства TabIndex
Занятие 3. Программирование, тестирование и отладка приложения
Программирование приложения
Создание программы для кнопки Clear Screen
Арифметические выражения
Создание программы для кнопки CalcButton
Функция Val
Функция Format
Тестирование и отладка приложения
Создание документации
Тема 3. Переменные и константы
Внесение изменений в приложение Skate-Away Sales
Занятие 1. Создание переменных и именованных констант
Использование переменных для хранения информации
Объявление переменной
Присваивание значений переменной
Область видимости переменной
Именованные константы
Занятие 2. Изменение приложения Skate-Away Sales
Хранение информации в переменных
Изменение программы кнопки Calculate Order
Конкатенация строк
Функция InputBox
Символ новой строки
Назначение кнопки по умолчанию
Занятие 3. Дополнения к приложению Skate-Away Sales
Изменение процедур обработки событий Load и Click
Статические переменные
Создание обработчика события TextChanged
Связывание процедуры с различными объектами или событиями
Тема 4. Условные операторы
Создание приложения, вычисляющего ежемесячные платежи
Занятие 1. Оператор If…Then…Else
Ветвящиеся процессы
Создание псевдокода для условных операторов If и If…Else
Представление операторов If и If…Else в структурной схеме алгоритма
Использование операторов If и If…Else
Операторы сравнения
Логические операторы
Функции UCase и LCase
Занятие 2. Приложение, вычисляющее сумму ежемесячных платежей
Разработка интерфейса пользователя
Создание процедуры CalcPayButton_Click
Метод MessageBox.Show
Программирование события TextChanged
Занятие 3. Завершение приложения Monthly Payment Calculator
Событие KeyPress
Выравнивание текста в элементе управления Label
Тема 5. Еще раз об условных операторах
Разработка приложения для математического практикума
Занятие 1. Вложенные условные операторы, операторы If...ElseIf...Else и Case
Вложенные условные операторы
Логические ошибки в условных операторах
Оператор If...ElseIf...Else
Оператор Case
Операторы Is, TypeOf…Is и Like
Занятие 2. Разработка приложения Math Practice
Завершение интерфейса пользователя < /p>
Программирование приложения Math Practice
Создание пользовательской процедуры
Создание процедур обработки события Click переключателей Grade 1
и Grade 2
Создание процедур обработки события Click переключателей Addition
и Subtraction
Создание процедуры обработки события Load формы
Занятие 3. Завершение разработки приложения Math Practice.
Создание процедуры CheckAnswerButton_Click
Создание процедуры SummaryCheckBox_Click
Тема 6. Циклы
Проектирование приложения, определяющего семестровую оценку
по программированию
Занятие 1. Циклические конструкции
Циклические конструкции
Оператор For…Next
Оператор Do…Loop
Применение счетчиков и суммирующих переменных
Занятие 2. Работа с семейством Controls
Семейство элементов управления Controls
Объектные переменные
Оператор For Each…Next
Создание пользовательских семейств
Приложение, вычисляющее семестровую оценку по программированию
Разработка процедуры GradeForm_Load
Разработка обработчика события Click расположенных в форме флажков
Занятие 3. Завершение приложения для определения оценки
по программированию
Разработка процедуры DisplayButton_Click
Создание процедуры обработки события Enter полей формы
Создание процедуры обработки события Closing объекта GradeForm
Тема 7. Процедуры и функции
Проектирование бухгалтерского приложения
Занятие 1. Проектирование подпрограмм и функций
Процедуры и подпрограммы
Передача аргументов в пользовательские подпрограммы
Функции 324
Занятие 2. Использование элемента управления ListBox
Проектирование интерфейса бухгалтерского приложения
Добавление в форму элемента управления ListBox
Создание обработчика события CalculateButton_Click
Создание функции GetFwtTax
Завершение обработчика события CalculateButton_Click
Очистка содержимого элементов управления Label
Занятие 3. Завершение проектирования бухгалтерского приложения..
Добавление существующей формы в решение
Процедура Sub Main
Создание экземпляра формы
Тема 8. Работа со строками
Создание игры “Виселица”
Занятие 1. Работа со строками
Определение количества символов в строке
Удаление символов из строки
Поиск подстроки в начале или конце строки
Извлечение символов из строки
Замена символов в строке
Добавление символов в строку
Поиск заданной последовательности символов в строке
Занятие 2. Использование элемента управления MainMenu
Завершение интерфейса игры “Виселица”
Создание меню
Создание обработчика события FileExitMenuItem_Click
Занятие 3. Завершение игры “Виселица”
Приложение для игры “Виселица”
Создание обработчика события FileNewMenuItem_Click
Создание обработчика события Click для надписей, содержащих буквы
Тема 9. Файлы последовательного доступа и печать
Создание приложения для учета различных мероприятий
Занятие 1. Файлы последовательного доступа
Типы файлов
Файлы последовательного доступа
Использование объектов StreamWriter и StreamReader
Открытие файла последовательного доступа
Запись в файл последовательного доступа
Чтение из файла последовательного доступа
Закрытие файла последовательного доступа
Демонстрация работы с файлами последовательного доступа
Занятие 2. Использование элемента управления DateTimePicker
Завершение интерфейса приложения Carriage House
Добавление элемента управления DateTimePicker
Свойство ShowUpDown
Свойство Format
Свойство Value
Свойство Text
Как получить системное время
Создание обработчика события CarriageForm_Load
Создание обработчика события AddButton_Click
Занятие 3. Завершение разработки приложения Carriage House
Приложение для Carriage House
Добавление элемента управления PrintDocument
Создание обработчика события PrintButton_Click
Создание обработчика события PrintDocument_PrintPage
Метод e.Graphics.DrawString
Тема 10. Файлы произвольного доступа
Создание приложения для семинара
Занятие 1. Работа с файлами произвольного доступа
Сравнение файлов произвольного и последовательного доступа
Создание структуры записи
Объявление переменной записи
Открытие файла произвольного доступа
Сохранение записи в файле произвольного доступа
Чтение записей из файла произвольного доступа
Закрытие файла произвольного доступа
Занятие 2. Использование файла произвольного доступа
Приложение для семинара
Создание обработчика события InitializeButton_ Click
Создание обработчика события AddButton_Click
Создание обработчика события DisplayButton_Click
Занятие 3. Завершение приложения для семинара
Создание процедур для приложения Seminar
Создание обработчика события RemoteButton_Click
Создание обработчика события PrintButton_Click
Создание обработчика события SeminarPrintDocument_PrintPage
Тема 11. Массивы
Создание приложения для расчета суммы налога
Занятие 1. Использование одномерного массива
Массивы
Одномерные массивы
Запись данных в одномерный массив
Использование одномерных массивов
Отображение содержимого одномерного массива
Использование индекса для доступа к элементу одномерного массива
Поиск в одномерном массиве
Вычисление среднего арифметического элементов числового массива
Поиск элемента с максимальным значением
Изменение элементов одномерного массива
Сортировка элементов одномерного массива
Занятие 2. Массивы и неоднородные данные
Параллельные одномерные массивы
Хранение записей в одномерном массиве
Занятие 3. Использование двухмерных массивов
Двухмерные массивы
Хранение данных в двухмерном массиве
Вычисление суммы значений, хранящихся в двухмерном массиве
Приложение для расчета подоходного налога
Создание обработчика события CalculateButton_Click
Тема 12. Работа с базами данных
Создание приложения для просмотра информации о сотрудниках
Занятие 1. Доступ к базе данных с использованием Windows-формы
Реляционные базы данных
Добавление объекта OleDbDataAdapter в Windows-форму
SQL
Создание набора данных
Добавление в форму элемента управления DataGrid
Настройка внешнего вида элемента управления EmployDataGrid
Занятие 2. Доступ к базе данных с использованием web-формы
Создание web-приложения
Добавление объекта OleDbDataAdapter в web-форму
Создание набора данных
Добавление в форму элемента управления DataGrid
Настройка внешнего вида элемента управления EmployDataGrid
Приложение А. Обработка ошибок и отладка
Типы ошибок
Исключения и обработка исключений
Создание собственных исключений
Отладка
Приложение Б. Панель инструментов конструктора
Windows-форм
Алфавитный указатель
ОТРЫВОК
Тема 2
Этапы разработки приложений
Создание приложения для приема заказов
После успешной реализации первой задачи — создания заставки Copyright — вы продолжаете работать в компании Interlocking Software. Старший программист поручает вам провести переговоры с потенциальным заказчиком. При встрече с менеджером по продажам торговой фирмы Skate-Away Sales вы выяснили следующее. Фирма специализируется на продаже скейтбордов, выполняя заказы, принятые по телефону. Ассортимент товаров невелик — это скейтборды двух цветов, синего либо желтого, стоимостью 100 долларов каждый. Кроме того, менеджер сообщил, что они наняли на работу 20 продавцов, которые при
поступлении заказа по телефону должны заполнить специальный бланк, содержащий имя покупателя, адрес, количество и цвет заказанных скейтбордов. Первоначально планировалось, что в обязанности этих сотрудников будет входить также расчет суммарного количества заказанного товара и общей цены с учетом ставки налога, равной 5 %. Но руководство фирмы пришло к выводу, что эту задачу следует автоматизировать, поскольку вычисления вручную занимают слишком много времени и часто производятся с ошибками. Компания Interlocking Software решила поручить вам разработку програ
ммы, использование которой решит все проблемы, связанные с приемом заказов.
Занятие 1
Проектирование объектно-
ориентированного приложения
На этом занятии рассмотрены следующие вопросы:
проектирование объектно-ориентированного управляемого событиями приложения, создаваемого с помощью Visual Basic .NET;
применение TOE-таблицы;
Windows-стандарты, касающиеся компоновки и обозначения элементов управления.
Порядок создания объектно-ориентированного управляемого событиями приложения
OOED-приложение:созданиеXE "OOED-приложение\:создание"приложение:OOED:созданиеXE "приложение\:OOED\:создание"Процесс разработки объектно-ориентированного управляемого событиями приложения (Object-Oriented/Event-Driven, OOED) включает шесть этапов и напоминает процесс проектирования и строительства дома. Для сравнения этих процессов воспользуйтесь табл. 2.1.
Таблица 2.1. Этапы строительства дома и создания приложения
Строительство дома Создание приложения
1. Встреча с клиентом 1. Встреча с клиентом
2.Разработка архитектурного проекта 2. Проектирование приложения с использованием TOE-таблицы
3. Закладка фундамента 3. Разработка интерфейса пользователя
4. Возведение стен, крыши и прокладка коммуникаций 4. Написание программного кода
5. Проверка качества выполнения
строительных работ и устранение
недостатков 5. Тестирование и отладка приложения
6. Оформление приемосдаточной
документации 6. Оформление документации
На первом этапе создания проекта, как архитектурного, так и компьютерного, разработчики выясняют требования клиента. После этого они приступают к планированию, завершив которое, представляют проект на утверждение заказчику. Только теперь строитель может закладывать фундамент, а программист создавать своеобразный каркас приложения — интерфейс пользователя. Далее строитель возводит сооружение и прокладывает электрические кабели, канализацию, систему водоснабжения и т. д. Аналогичным образом программист завершает создание приложения, добавляя необ
ходимые элементы программы (операторы) и совершенствуя интерфейс пользователя. После окончания работ строитель проверяет качество их выполнения и до того, как заказчик въедет в дом, устраняет все недостатки. Точно так же программист тестирует готовое приложение, исправляя все ошибки перед тем как вручить его пользователю. Заключительный этап и в том и в другом случае — оформление документации проекта, которая затем передается клиенту.
Описание объектов приложения и выполняемых
ими задач
Любой OOED-приложение:проектированиеXE "OOED-приложение\:проектирование"Приложение:OOED:проектированиеXE "Приложение\:OOED\:проектирование"архитектор скажет вам, что главное значение для заказчика строительства дома имеет не красота сооружения, а соответствие его потребностям жильцов. Например, большая столовая нужна тому, кто часто устраивает приемы; для человека, ведущего замкнутый образ жизни, это будет нерациональным использованием жилой площади. Точно так же нуждам клиента должно соответствовать готовое OOED-приложение. Поэтому как жилой дом, так и компьют
ерное приложение следует проектировать при активном участии будущих пользователей. Проектирование OOED-приложения предполагает:
формирование задач, которые должно выполнять приложение;
задание объектов для выполнения этих задач;
определение событий, необходимых при активизации объектов, выполняющих поставленные задачи;
создание эскиза интерфейса пользователя.
Чтобы сформулировать задачи, выполняемые приложением, а также определить объекты и события, с которыми связаны эти задачи, удобно использовать TOE- таблицу (Task, Object, Event). В следующем разделе мы начнем разрабатывать такую таблицу для приложения компании Skate-Away Sales. Итак, наш первый шаг — определить задачи приложения.
Определение задач
Мы уже выяснили, что создание успешного приложения невозможно без совместной работы с заказчиком на этапе проектирования. Чтобы определить требования к проекту, вы просите менеджера по продажам компании Skate-Away Sales принести бланк, используемый продавцами при приеме заказов. Для выяснения задач, которые должно выполнять приложение, вам необходимо изучить процедуру заполнения этого бланка. Кроме того, он может служить как «путеводитель» при разработке интерфейса пользователя.
Чтобы четко определить главные задачи, следует выяснить ряд вопросов, касающихся данных, с которыми будет работать приложение, а также порядка действий пользователя при вводе новой информации и выходе из программы.
Далее перечислены эти вопросы и те ответы, которые на них может дать наш конкретный заказчик — представитель компании Skate-Away Sales.
Какую информацию (если таковая имеется) приложение должно
отображать на экране и/или распечатывать на принтере
На экране должно быть отображено имя покупателя (Name), а также его почтовый индекс (ZIP), название улицы (Adrress), города (City) и штата (State). Кроме того, необходимо отобразить следующие данные: ставка налога (Sales tax rate), цена скейтборда (Skateboard price), количество заказанных скейтбордов синего цвета (Blue skateboards ordered), количество заказанных скейтбордов желтого цвета (Yellow skateboards ordered), общее количество заказанного товара (Total skateboards) и общая сумма заказа (Total price). В нашем случае не требуется вывод данных на принтер.
Какую информацию (если таковая имеется) пользователь должен вводить с помощью пользовательского интерфейса, чтобы отображать и/или распечатывать нужные данные
При работе с приложением компании Skate-Away Sales продавец должен ввести имя покупателя, его почтовый индекс, название улицы, города и штата, а также цену скейтборда, ставку налога, количество заказанных скейтбордов синего и желтого цвета.
Какие данные (если таковые имеются) приложение должно вычислять, чтобы отображать и/или распечатывать нужные сведения
Приложение компании Skate-Away Sales должно вычислять общее количество заказанных скейтбордов и общую сумму заказа.
Как пользователь будет завершать работу приложения
В теме 1 вы узнали о том, что все приложения должны давать пользователю возможность выхода из программы. Приложение компании Skate-Away Sales не является исключением и должно предоставлять способ завершения работы.
Нужно ли удалять с экрана предыдущую информацию перед вводом новой
После того как продавец компании Skate-Away Sales введет и рассчитает заказ, он должен будет очистить экран перед вводом данных о следующем заказе.
Мы уже упоминали, что для создания перечня задач, а также объектов и событий, связанных с этими задачами, TOE-таблица XE " TOE-таблица "удобно применить TOE-таблицу, которая представлена ниже. Первый столбец табл. 2.2 содержит определенные ранее задачи для разрабатываемого приложения. Проектирование OOED-приложений, в отличие от процедурно-ориентированного проектирования, не требует придерживаться строго заданного порядка перечисления задач. В данном случае сначала указаны задачи ввода данных, а затем задачи вычисления, отображения, завершения работы приложен
ия и очистки экрана.
Таблица 2.2. TOE-таблица, упорядоченная по задачам
Задача Объект Событие
Получить у пользователя следующую информацию:
Имя покупателя NameTextBox Нет
Название улицы AddressTextBox Нет
Название города CityTextBox Нет
Название штата StateTextBox Нет
Почтовый индекс ZipTextBox Нет
Цена скейтборда PriceTextBox Нет
Ставка налога RateTextBox Нет
Количество заказанных скейтбордов синего цвета BlueTextBox Нет
Количество заказанных скейтбордов желтого цвета YellowTextBox Нет
Вычислить общее количество заказанных скейтбордов
и общую сумму заказа CalcButton Click
(щелчок мышью)
Отобразить следующую информацию:
Имя покупателя NameTextBox Нет
Название улицы AddressTextBox Нет
Город CityTextBox Нет
Штат StateTextBox Нет
Почтовый индекс ZipTextBox Нет
Цена скейтборда PriceTextBox Нет
Ставка налога RateTextBox Нет
Количество заказанных скейтбордов синего цвета BlueTextBox Нет
Количество заказанных скейтбордов желтого цвета YellowTextBox Нет
Общее количество заказанных скейтбордов CalcButton TotalBoardsLabel Click
Нет
Общая сумма заказа CalcButton TotalPriceLabel Click
Нет
Завершить работу приложения ExitButton Click
Очистить экран для следующего заказа ClearButton Click
ПРИМЕЧАНИЕ
TOE-таблицу можно начертить вручную или создать с помощью текстового редактора (например, Microsoft Word).
Теперь определим, какие объекты нужно создать в приложении для решения перечисленных в таблице задач.
Определение объектов
После занесения в TOE-таблицу всех поставленных задач каждой из них следует назначить объект в интерфейсе пользователя. Для данного приложения, кроме самой Windows-формы, вы будете использовать такие объекты, как надписи, кнопки и текстовые поля. Из материала, изложенного в теме 1, вам известно, что с помощью элемента управления Label отображается та информация, которую пользователь не должен изменять во время работы приложения, кнопка применяется для выполнения какого-либо действия непосредственно после щелчка на ней, а текстовое поле предоставляет возможнос
ть ввести нужные данные. Теперь назначим объект каждой задаче из TOE-таблицы.
Ваша первая задача — получение информации от клиента. При поступлении заказа продавец должен указать имя покупателя, его почтовый индекс, название улицы, города, штата, а также цену скейтборда, ставку налога и количество заказанных скейтбордов желтого и синего цвета. Поскольку нужно предоставить продавцу поля для занесения этих данных, первой задаче следует назначить девять текстовых полей — по одному для каждого типа данных. Текстовые поля будут представлены объектами NameTextBox, AddressTextBox, CityTextBox, StateTextBox, ZipTextBox, PriceTextBox, RateTextBox, BlueTextBox и YellowTextBox.
Вторая указанная в схеме задача — расчет общего количества заказанных скейтбордов и общей суммы. Так как продавец должен вычислять эти значения при получении каждого заказа, назначим для выполнения данной операции кнопку Calculate Order, реализованную с помощью объекта CalcButton.
Третья задача — отображение информации о заказе: общего количества скейтбордов и общей суммы. Указанные данные будут отображены автоматически, когда пользователь заполнит девять текстовых полей. При этом общее количество заказанных скейтбордов и общая сумма заказа не вносятся пользователем, а вычисляются после щелчка на кнопке Calculate Order. Поскольку пользователь не должен иметь возможности менять вычисленные результаты, необходимо, чтобы после щелчка на этой кнопке общее количество заказанных скейтбордов и сумма заказа отображались в двух надписях, п
редставленных объектами TotalBoardsLabel и TotalPriceLabel. Обратите внимание, что каждая из задач, отображение общего количества заказанных скейтбордов и общей суммы заказа, потребовали использования двух объектов — CalcButton, TotalBoardsLabel и CalcButton, TotalPriceLabel соответственно.
Две последние задачи, перечисленные в схеме, — завершение работы приложения и очистка экрана для следующего заказа. Назначим им кнопки Exit и Clear Screen, чтобы пользователь сам определял, когда выполнять эти действия. Объекты для данных кнопок назовем ExitButton и ClearButton.
Все названные объекты представлены во втором столбце табл. 2.2.
Итак, мы определили задачи и назначили им объекты интерфейса пользователя. Теперь для каждого объекта нужно задать необходимое событие (такое как щелчок или двойной щелчок мыши), которое заставит его выполнять поставленную задачу. Как это сделать, рассказано в следующем разделе.
Определение событий
Девять текстовых полей, перечисленных в табл. 2.2, назначены задачам получения и отображения информации. Поскольку получение и отображение текстовыми полями информации происходит автоматически, для выполнения их задачи никаких специальных событий задавать не требуется.
Две надписи, TotalBoardsLabel и TotalPriceLabel, предназначены для отображения общего количества заказанных скейтбордов и общей суммы заказа. Они также автоматически отображают содержимое, поэтому и для них не нужны никакие специальные события. (Напомним, что обе надписи получают свои значения после щелчка на кнопке Calculate Order.)
ПРИМЕЧАНИЕ
Не всем объектам интерфейса пользователя для выполнения назначенной задачи требуется определение событий.
Мы не задали события только трем кнопкам, представленным объектами CalcButton, ClearButton и ExitButton. Определим, что они должны выполнять поставленные задачи после щелчка на них.
Если вы пишете простую программу, подобную рассматриваемой, то можете использовать TOE-таблицу в такой форме, как указано выше. Но при разработке большого приложения полезно упорядочить данную таблицу не по задачам, а по объектам. Для этого нужно перечислить все объекты, содержащиеся во втором столбце табл. 2.2, и удостовериться, что каждый из них указан только один раз. Затем необходимо составить список задач, которые назначены каждому объекту в первом столбце названной таблицы, и перечень событий, заданных в третьем столбце. Ниже представлена TOE-таблица, у
порядоченная по объектам.
Таблица 2.3. TOE-таблица, упорядоченная по объектам
Задача Объект Событие
1. Вычисление общего количества заказанных
скейтбордов и общей суммы заказа
2. Отображение общего количества заказанных
скейтбордов и общей суммы заказа в элементах
управления TotalBoardsLabel и TotalPriceLabel CalcButton Click
Очистка экрана для внесения данных следующего заказа ClearButton Click
Завершение работы приложения ExitButton Click
Отображение после щелчка на элементе управления CalcButton общего количества заказанных скейтбордов TotalBoardsLabel Нет
Отображение после щелчка на элементе управления CalcButton общей суммы заказа TotalPriceLabel Нет
Получение и отображение информации NameBox, AddressBox, CityTextBox, StateTextBox, ZipTextBox, PriceTextBox, RateTextBox, BlueTextBox, YellowTextBox Нет
Следующий этап после создания TOE-таблицы — разработка эскиза интерфейса пользователя, описанная в следующем разделе.
Разработка эскиза интерфейса пользователя
интерфейс пользователя, проектированиеXE "интерфейс пользователя, проектирование"В TOE-таблице мы перечислили все объекты, которые должны быть включены в интерфейс пользователя, но ничего не сказали о местоположении этих объектов. Хотя разработка интерфейса — дело творческое, для того чтобы приложение не противоречило стандартам Windows, располагая объекты, необходимо следовать некоторым правилам. Это позволит облегчить изучение и использование вашего приложения, поскольку расположение элементов в интерфейсе окажется привычным для пользователя.
Интерфейс следует организовать таким образом, чтобы информация располагалась либо вертикально, либо горизонтально, причем наиболее важные данные должны быть помещены в верхнем левом углу экрана. Если применяется вертикальное размещение, данные располагают сверху вниз, причем наиболее важные сведения помещают в первом столбце, а второстепенные — в столбцах справа от него. При горизонтальном размещении данные располагают слева направо, в этом случае самые важные из них помещают в первой строке, а второстепенные — в строках, находящихся ниже. Связанные
между собой элементы можно расположить в пустом пространстве окна приложения, сгруппировать в блоке, ограниченном рамкой, или поместить на специально созданную панель.
Если интерфейс содержит кнопки, их следует располагать либо внизу экрана, либо в правом верхнем или правом нижнем углу. Для данного приложения мы ограничимся тремя кнопками и поместим наиболее востребованные из них слева, если решим располагать кнопки в нижней части экрана, либо вверху, если кнопки будут помещены в правом верхнем или правом нижнем углу экрана.
Далее приведены два эскиза интерфейса приложения для компании Skate-Away Sales. На первом из них (рис. 2.1) информация расположена вертикально. В этом случае при группировке связанных элементов управления использовано пустое пространство, а кнопки представлены в нижней части окна. На втором эскизе (рис. 2.2) информация размещена горизонтально. Здесь связанные элементы посредством элемента управления Group Box объединены в блоки, а кнопки расположены в правом верхнем углу окна.
ПРИМЕЧАНИЕ
Некоторые компании разработали собственные стандарты интерфейса пользователя. В этом случае при разработке приложения используют стандарты компании-заказчика, а не Windows-стандарты.
Обратите внимание на то, что все текстовые поля и кнопки в интерфейсе снабжены надписями, так что пользователь имеет представление о назначении каждого элемента управления. Надписи для текстовых полей следует выравнивать по левому краю и располагать либо сверху, либо слева от соответствующего поля. Что касается кнопок, то вы уже знаете, что на каждой из них в одну строку должна быть размещена состоящая не более чем из трех слов надпись, содержащая информацию о действии, выполняемом после нажатия этой кнопки.
Надписи обязательно должны нести смысловую нагрузку. Например, надпись, расположенная возле текстового поля, сообщает пользователю, какого рода информацию он должен ввести, а текст на кнопке указывает действие, к выполнению которого приведет щелчок на ней.
Каждая надпись возле текстового поля заканчивается двоеточием (:), чтобы отделить саму надпись от текста, вводимого в поле. В соответствии со стандартом Windows, в надписях с заглавной буквы пишутся только первое слово и слова, в которых заглавные буквы употребляются по правилам. Этот же подход распространяется и на кнопки, если речь идет о тексте на русском языке. В названии кнопки на английском языке все слова нужно писать с заглавной буквы, за исключением артиклей, союзов и предлогов, расположенных не в начале и не в конце текста.
При создании интерфейса пользователя определите количество элементов управления, которое вам понадобится. Для того чтобы облегчить пользователю восприятие информации, постарайтесь свести к минимуму число различных полей, а также используйте выравнивание рамок, ограничивающих блоки, в которые сгруппированы элементы управления (см. рис. 2.1 и 2.2).
На занятии 2 мы выполним третий из шести этапов создания объектно-ориентированного управляемого событиями приложения — используя как основу эскиз, представленный на рис. 2.1, создадим интерфейс приложения для компании Skate-Away Sales. Занятие 3 будет посвящено последним трем этапам: программированию, тестированию и отладке приложения, а также оформлению соответствующей документации.
Подведение итогов
На этом занятии вы узнали, как проектировать объектно-ориентированные управляемые событиями приложения с использованием TOE-таблицы, и выяснили, из каких шести этапов состоит процесс создания приложения. Мы рассказали о порядке выполнения этапа проектирования и изложили основные правила, которым нужно следовать при создании эскиза графического интерфейса пользователя. На следующем занятии вы на практике научитесь создавать графический интерфейс простого приложения с помощью Visual Basic .NET.
Занятие 2
Создание интерфейса пользователя
На этом занятии рассмотрены следующие вопросы:
создание интерфейса пользователя с помощью TOE-таблицы
и готового эскиза;
стандарты Windows, относящиеся к графике, цвету и шрифтам;
использование свойства BorderStyle;
добавление в форму текстового поля;
фиксация позиций элементов управления в форме;
назначение элементам управления клавиш быстрого доступа;
использование свойства TabIndex.
Размещение элементов интерфейса
Интерфейс:пользователя:созданиеXE "Интерфейс\:пользователя\:создание"На прошлом занятии вы спроектировали приложение, выполнив таким образом второй этап процесса создания объектно-ориентированного управляемого событиями приложения. Теперь можно приступать к разработке интерфейса пользователя — размещению в форме соответствующих элементов управления и настройке их свойств. В качестве основы мы используем TOE-таблицу и эскиз, подготовленные на предыдущем занятии. Напомним, что свойства отвечают за вид и характеристики объекта, например шрифт или раз
мер. Работу можно построить по-разному: сначала создать весь интерфейс, а затем установить свойства объектов или настроить свойства каждого объекта сразу после помещения его в форму. Любой из двух способов подходит, и порядок работы зависит от ваших личных предпочтений.
Чтобы сэкономить время, воспользуйтесь частично разработанным приложением для компании Skate-Away Sales. В нем создана часть интерфейса пользователя и установлены значения большинства свойств, в форме не хватает только одного элемента управления — текстового поля. На этом занятии вы добавите недостающий элемент и настроите его свойства.
Для того чтобы открыть приложение, выполните следующие действия.
1.
Запустите интегрированную среду разработки Visual Studio .NET, если это еще не сделано. После того как на экране появится окно Start Page, закройте его.
2.
Активизируйте команду >Open Solution и выберите файл VBNET\Tut02\Order Solution\Order Solution.sln.
3.
Если окно конструктора форм не открыто, дважды щелкните левой кнопкой мыши на файле Order Form.vb в окне Solution Explorer.
Элементы управления, которые уже включены в приложение, показаны на рис. 2.3. Имена отдельных из них представлены в полях ввода. Что касается кнопок, то им соотвествуют следующие элементы управления: кнопке Calculate Order — элемент управления CalcButton, кнопке Clear Screen — элемент управления ClearButton, а кнопке Exit — элемент управления ExitButton. Объект формы имеет название OrderForm.
Данный интерфейс пользователя основан на эскизе, который был разработан ранее (см. рис. 2.1). Напомним, что этот эскиз создан с учетом правил, изученных вами на прошлом занятии. Так, информация расположена вертикально, причем наиболее важные данные размещены в левом верхнем углу формы. Кнопки находятся в нижней части формы, и первую позицию занимает наиболее востребованная из них. Надписи на кнопках несут смысловую нагрузку, при этом каждая такая надпись размещена в одной строке и состоит максимум из трех слов. Надписи для текстовых полей выровнены по лево
му краю и расположены слева от соответствующих элементов управления, каждая из них в соответствии с Windows- стандартом завершается двоеточием.
Обратите внимание, что элементы управления в форме выровнены, где это возможно. Для такого выравнивания удобно пользоваться сеткой, узлы которой отображаются точками во время разработки формы, либо командами подменю Format>Align (см. материал темы 1).
При размещении элементов управления убедитесь, что вы сохраняете отступ от края формы, рекомендуемая величина — два-три узла сетки. Например, на рис. 2.3 нижние края трех кнопок и формы разделяют три узла. Такое же расстояние оставлено между левыми краями формы и надписей, помещенных в первом столбце.
Как хорошо видно на рис. 2.3, связанные элементы управления обычно располагаются с интервалом, равным одному шагу сетки. Например, одной точкой разделены находящиеся в одном вертикальном ряду элементы управления NameTextBox и AddressTextBox. Такое же расстояние установлено между правым краем кнопки Calculate Order и левым краем кнопки Clear Screen. Те элементы управления, которые не относятся ни к одной из логических групп, можно поместить на два–четыре узла дальше остальных элементов.
Всегда следите за тем, чтобы кнопки были соразмерны друг другу. Если они помещены в нижнюю часть экрана, как на рис. 2.3, то должны иметь одинаковую высоту, а их ширину можно при необходимости варьировать. Но когда кнопки расположены вертикально (в правом верхнем или правом нижнем углу экрана), их ширина тоже должна быть одинаковой.
Применение графики, шрифтов и цвета
При разработке интерфейса пользователя ваша задача — создать экран, который не будет отвлекать внимание. Броский интерфейс поначалу может вызвать восторг пользователей, но вскоре начнет их утомлять и раздражать. К сожалению, некоторые разработчики при создании элементов интерфейса не могут удержаться от чрезмерного использования доступных в Visual Basic .NET различных цветов, шрифтов и графики. В следующих разделах мы познакомим вас с правилами, которым нужно следовать, создавая эти элементы. Сначала обратимся к графике.
Включение рисунков
Учтите, что человеческий глаз замечает вначале рисунки, а уже потом текст. Поэтому графические элементы следует включать в интерфейс только в случае необходимости. Обычно рисунки используются для того, чтобы подчеркнуть или пояснить содержимое, отображаемое на экране. Кроме того, рисунок можно применять в эстетических целях, если его размер невелик, а расположение не раздражает пользователя и не отвлекает внимание. Например, маленький рисунок помещен в интерфейсе приложения для компании Skate-Away Sales только из этих соображений. Мы преднамеренно расположи
ли его в верхнем левом углу формы, куда вначале обращается взгляд пользователя, для придания индивидуальности бланку заказа Skate-Away Sales.
В следующем разделе будет рассказано об основных правилах использования различных шрифтов в процессе разработке интерфейса.
Использование различных шрифтов
ШрифтXE "Шрифт"Шрифт:типXE "Шрифт\:тип"Интерфейс:пользователя:применение шрифтовXE "Интерфейс\:пользователя\:применение шрифтов"Как вы уже знаете из темы 1, при отображении текста в объектах можно изменять шрифт (используя, например, Microsoft Sans Serif, Tahoma или Courier), его начертание (полужирное, курсивное и обычное) и размер (например, 8, 10, 18 пунктов).
Одни шрифты относятся к типу serif (с засечками), другие — к типу sans serif (рубленый шрифт). Засечками называются маленькие штрихи вверху или внизу символа. Символы шрифта типа serif имеют такие засечки, а символы шрифта sans serif — нет. Обычно в книгах используется шрифт с засечками, потому что текст, набранный таким шрифтом, легко читать на печатной странице. А текст, набранный шрифтом без засечек, проще читать с экрана, поэтому при разработке интерфейса следует применять шрифты без засечек. Обычно для надписей элементов интерфейса Windows употребляется шрифт Microsoft Sans Se
rif. Однако в приложениях, которые будут выполняться в Windows 2000 или Windows XP, рекомендуется использовать шрифт Tahoma, потому что он лучше читается и предоставляет поддержку глобализации. Для всех видов текста, содержащихся в интерфейсе, следует применять один и тот же шрифт. Например, в нашем приложении — это шрифт Tahoma.
Что касается размера шрифта, то он может варьироваться от 8 до 12 пунктов (1 пункт равен 1/72 дюйма). Однако в одном интерфейсе разрешается использовать не более двух размеров. Поэтому в нашем приложении применяются шрифты двух размеров: 12 пунктов для заголовка и 10 пунктов для остального текста.
При разработке интерфейса старайтесь избегать использования курсивного начертания и подчеркивания текста, потому что это усложняет чтение, а к полужирному начертанию прибегайте только в заголовках и ключевых понятиях, которые хотите выделить.
Кроме графических излишеств и неправомерного применения шрифтов, многие разработчики приложений ошибаются при выборе цветовой гаммы, предпочитая либо слишком яркие цвета, либо избыточные комбинации цветов в интерфейсе пользователя. В следующем разделе вы узнаете о том, каких правил следует придерживаться при задании цветов.
Применение цветовой гаммы
Мы уже говорили, что человеческий глаз вначале реагирует на рисунок, а уже потом на текст. Точно так же яркие цвета привлекают внимание раньше, чем черно- белые. Поэтому при создании интерфейса рекомендуется вначале использовать черный, белый и серый цвета, а уже потом при необходимости добавлять другие. При выборе цветовой гаммы постарайтесь учесть следующие факторы:
часть пользователей будет работать с монохромными мониторами;
некоторые люди страдают дальтонизмом или какой-либо формой цветовой слепоты, поэтому плохо различают цвета;
отношение к цвету очень субъективно — оттенок, который нравится вам, может раздражать других;
в разных национальных культурах цвет несет различную смысловую нагрузку.
Советуем вам при выборе цвета следовать стандарту Windows, то есть использовать черный текст на белом и светло-сером фоне (темный текст на светлом фоне легче читается). В частности, в нашем интерфейсе приложения для компании Skate-Away Sales черный текст отображается на светло-сером фоне. Если вы хотите немного «раскрасить» интерфейс, можете использовать другую комбинацию: черный текст на бледно-голубом или бледно-желтом фоне. Никогда не создавайте черный фон для текста, выполненного темным цветом, поскольку глаза плохо воспринимают такое сочетание. Избегайте такж
е использования белого фона для светлого текста, в этом случае текст может выглядеть расплывчато.
Применяя в интерфейсе несколько цветов, ограничьте их количество тремя (кроме белого, черного и серого) и обязательно убедитесь, что цвета сочетаются друг с другом.
Важные элементы интерфейса можно выделить цветом, но учтите, что это только вспомогательное средство для привлечения к ним внимания. Каждый такой элемент все равно должен быть снабжен соответствующей надписью. Так, в нашем приложении голубой и желтый цвета помогут продавцу быстро найти поля, в которые необходимо внести количество заказанных скейтбордов синего и желтого цвета. А слева от каждого из этих полей расположены надписи, уведомляющие об этом (Blue skateboards ordered и Yellow skateboards ordered).
Теперь давайте вернемся к нашему приложению и заменим серый цвет фона формы белым.
Для того чтобы произвести такое изменение, выполните следующие действия.
1.
Выделите форму, щелкнув на ней мышью. В окне Properties выберите свойство BackColor, а затем щелкните на списке в поле значений свойства. Активизируйте вкладку Custom и выберите белый цвет, после чего фон формы станет белым. Заметьте также, что цвет фона большинства элементов формы тоже стал белым.
В отличие от предыдущих версий, в Visual Basic .NET элементу управления следует явно задавать свойство BackColor, иначе он наследует цветовые характеристики своего родителя. Здесь форма является родителем по отношению к каждому элементу управления в интерфейсе приложения, поэтому после изменения цвета фона формы их цвет фона тоже изменился. Но для двух элементов, представленных объектами BlueTextBox и YellowTextBox, свойство BackColor было задано явно, и их цвета фона остались голубым и желтым соответственно.
Теперь явно зададим свойство BackColor кнопки Calculate Order.
2.
Щелкните на этой кнопке. После этого в окне Properties выберите свойство BackColor, затем в поле его значений щелкните на стрелке списка. Перейдите на вкладку System и выберите элемент Control. Цвет фона кнопки Calculate Order станет серым.
Предположим, вы хотите вернуться к первоначальному внешнему виду интерфейса. Для того чтобы отменить внесенные ранее изменения, можно воспользоваться командой Undo или одноименной кнопкой, расположенной на панели инструментов.
3.
Выполните команду Edit>Undo (Правка>Отменить), после чего цвет фона кнопки Calculate Order станет белым (цветом ее родительской формы).
4.
Для того чтобы вернуть фону формы серый цвет, повторно выполните команду Undo.
В предыдущих разделах вы познакомились с общими правилами использования графики, шрифтов и цветовой гаммы, которым нужно следовать при создании элементов интерфейса. Теперь вам предстоит попрактиковаться в создании рамки для элемента управления, научиться задавать текст, который будет отображаться в поле ввода при запуске приложения, добавлять в форму текстовое поле и закреплять в ней местоположение созданных элементов интерфейса, назначать для некоторых элементов клавиши быстрого доступа и настраивать свойство TabIndex.
Выбор стиля рамки элемента управления
Свойство:BorderStyleXE "Свойство\:BorderStyle"BorderStyle, свойствоXE "BorderStyle, свойство"Свойство BorderStyle определяет стиль рамки элемента управления. Для данного свойства предусмотрены три значения: None, FixedSingle и Fixed3D. Если свойству присвоено значение None, элемент не имеет рамки, если значение FixedSingle — элемент окружает тонкая линия, а если значение Fixed3D — элемент имеет трехмерное представление. Сейчас в интерфейсе приложения Skate-Away Sales свойству BorderStyle надписей присвоено значение None, обычно используемое для надписей, а свойству BorderStyle текстовых полей — значение Fixed3D, чаще всего при
меняемое для текстовых полей.
ПРИМЕЧАНИЕ
В интерфейсе Windows-приложений обычно не представляют в трехмерном виде те элементы управления, которые содержат данные, не подлежащие редактированию пользователем. Поэтому свойству BorderStyle надписей не следует присваивать значение Fixed3D.
Свойство BorderStyle текстовых полей и надписей, определяющих другие элементы управления, не нужно менять — пусть ему будет присвоено значение Fixed3D и None соответственно. Но свойству BorderStyle надписи, отображающей результат работы программы (например, результат вычисления), обычно присваивают значение FixedSingle. В интерфейсе нашего приложения элементы управления, представленные объектами TotalBoardsLabel и TotalPriceLabel, отображают результаты вычислений, поэтому задайте свойству BorderStyle данных элементов значение FixedSingle. Для этого выполните следующие действия.
1.
Выделите элементы управления, представленные объектами TotalBoardsLabel и TotalPriceLabel.
СОВЕТ
Для того чтобы выделить оба элемента управления, сначала щелкните на одном из них, а затем, удерживая клавишу Ctrl, щелкните на втором.
2.
Присвойте свойству BorderStyle выделенных элементов значение FixedSingle, а затем произведите щелчок мышью в форме, чтобы отменить выделение.
Теперь перейдем к изучению свойства Text.
Создание надписи на элементе управления
СОВЕТ
Большинство свойство:TextXE "свойство\:Text"Text:свойствоXE "Text\:свойство"клиентов компании Skate-Away Sales живут в штате Иллинойс (Illinois), поэтому удобно, чтобы при запуске приложения в текстовом поле State формы заказа отображалась аббревиатура IL. Если же заказ сделан покупателем из другого штата, продавец может изменить название в динамическом режиме. Для этого он должен сначала щелкнуть в текстовом поле State, а затем удалить текущее значение и ввести новое.
СОВЕТ
Чтобы при запуске приложения в текстовом поле State отображалась аббревиатура, соответствующая названию штата Иллинойс, нужно присвоить свойству Text данного элемента управления значение IL.
СОВЕТ
Придерживайтесь следующего порядка действий.
1.
Щелкните на элементе управления, представленном объектом StateTextBox.
2.
В окне Properties выберите свойство Text, затем введите значение IL и нажмите клавишу Enter. После этого в текстовом поле State появится аббревиатура IL.
СОВЕТ
Обратите внимание, что в интерфейсе отсутствует текстовое поле, в которое пользователь должен вводить название города. Как добавить элемент управления в форму, будет описано в следующем разделе.
Добавление текстового поля в форму
текстовое полеXE "текстовое поле"Текстовое поле предоставляет в форме область, в которую пользователь может вводить данные.
ПРИМЕЧАНИЕ
Напомним, что в контексте объектно-ориентированного программирования каждый инструмент, представленный на панели инструментов, является классом — шаблоном, на основе которого создается один или несколько объектов, называемых элементами управления. Каждый элемент управления, который вы создаете, является экземпляром класса. Например, элемент управления TextBox1 — экземпляр класса TextBox.
СОВЕТ
Теперь добавим в форму текстовое поле, а затем настроим его свойства. Элемент управления:TextBoxXE "Элемент управления\:TextBox"TextBox, элемент управленияXE "TextBox, элемент управления"Для этого нужно выполнить следующие действия.
1.
Выберите на панели инструментов инструмент TextBox. Перетащите его в форму и поместите справа от надписи City прямо под текстовым полем Address. Пока можете не беспокоиться о точном расположении текстового поля.
СОВЕТ
Текст, который появился внутри созданного текстового поля, представляет собой значение свойства Text данного элемента управления. Чтобы данный текст больше не появлялся при запуске приложения, его следует удалить.
2.
Выделите текст TextBox1 в поле значений свойств, выполнив двойной щелчок на свойстве Text в окне Properties.
3.
Чтобы удалить выделенный текст, нажмите клавишу Delete, а затем клавишу Enter. Теперь это текстовое поле пусто.
ПРИМЕЧАНИЕ
Для удаления выделенного текста в окне Properties применяйте только клавишу Delete или Backspace. Не пользуйтесь при выполнении этой операции клавишей пробела, поскольку выделенное значение свойства будет заменено пробелом.
Переименуем объект TextBox1 (имя, присвоенное по умолчанию) в CityTextBox. Кроме того, увеличим размер шрифта до 10 пунктов.
4.
Настройте свойства текстового поля таким образом:
Name: CityTextBox
Font: 10
СОВЕТ
Напомним, что в списке свойств, упорядоченном по алфавиту, свойство Name расположено третьим. Если же список окна Properties упорядочен по категориям, это свойство находится в категории Design.
Далее, используя подменю Format>Align, выровняем левый край элемента управления CityTextBox по левому краю элемента управления AddressTextBox.
5.
Нажав и удерживая клавишу Ctrl, щелкните на элементе управления AddressTextBox. Теперь будут выделены оба элемента управления: CityTextBox и AddressTextBox.
6.
Выполните команду Format>Align>Lefts (Формат>Выровнять>По левому краю), чтобы выровнять оба элемента управления по левому краю.
С помощью команд подменю Format>Make Same Size изменим соответствующим образом размеры элемента управления CityTextBox.
7.
Элемент управления:выравнивание в формеXE "Элемент управления\:выравнивание в форме"Для того чтобы ширина и высота элемента управления CityTextBox стала равной ширине и высоте элемента управления AddressTextBox, воспользуемся командой Format>Make Same Size>Both.
Самоучитель Visual Basic .NET. / Д. Зак - СПб: Питер, 2003. - 560 с.
|