1432
.pdf4.4. Задания на тему «Чтение данных из бинарного файла»
Создать консольное приложение, читающее данные из бинарного файла в два массива. Использовать в качестве тестовых данных файл, созданный в работе на тему «Запись данных в бинарный файл». В табл. 4.4 указаны типы данных, которые должны быть использованы в программе.
Таблица 4.4
Варианты заданий на тему «Чтение данных из бинарного файла»
Вариант |
Массив 1 |
Массив 2 |
1 |
char |
short |
2 |
char |
integer |
3 |
char |
long |
4 |
char |
single |
5 |
char |
double |
Вариант |
Массив 1 |
Массив 2 |
6 |
byte |
short |
7 |
byte |
integer |
8 |
byte |
long |
9 |
byte |
single |
10 |
byte |
double |
Порядок выполнения лабораторной работы
Создать новый проект – консольное приложение.
Добавить необходимый программный код.
Компилировать программу.
Создать бинарный файл с исходными данными.
Тестировать программу.
Создать документ с описанием работы программы.
49
5.ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ
5.1.Примеры визуальных компонентов
Современную технологию разработки программных продуктов упрощенно можно разбить на два шага: проектирование интерфейса и программирование обработки событий. Реализация интерфейса состоит, как правило, в добавлении необходимых визуальных компонентов на стандартную форму. Эти компоненты обеспечивают ввод и отображение информации, просмотр списков, выбор, организацию меню и т.д. Если при создании
проекта |
вы |
указываете Приложение |
Windows Forms, то |
|
автоматически |
генерируется стандартная форма, на которой |
|||
можно |
разместить все |
необходимые визуальные компоненты. В |
||
левой |
части |
рис. 5.1 |
отображена часть |
компонетов Панели |
элементов, которая открывается щелчком мыши.
Рис. 5.1. Панель с визуальными компонентами
Например, компонент Label предназначен для вывода сообщений. Текст сообщения присваивается свойству Text компонента. В табл. 5.1 перечислены некоторые визуальные компоненты.
50
Таблица 5.1
|
Примеры визуальных компонентов |
Компонент |
Описание |
|
|
Button |
Управляющая кнопка |
|
|
CheckBox |
Флажок для выбора |
|
|
ComboBox |
Список с полем для ввода строки |
|
|
Label |
Поле для вывода строки |
|
|
ListBox |
Поле со списком |
|
|
PictureBox |
Поле для вывода рисунка |
|
|
RadioButton |
Переключатель для выбора одного из вариантов |
|
|
TextBox |
Поле для ввода строки |
|
|
Свойства и параметры компонентов можно указывать непосредственно при построении формы в окне обозревателя свойств. После построения интерфейса в проект добавляют программный код обработки событий. Например, для добавления обработки события «щелчок по управляющей кнопке» нужно дважды щелкнуть по данной кнопке в конструкторе форм, а затем ввести соответствующий код в открывшуюся функцию. Программа, созданная после компиляции проекта, открывается в типичном для Windows окне. Вид и поведение компонента определяют его свойства, которые можно изменять как в программе, так и в конструкторе формы. В табл. 5.2– 5.8 приводятся важнейшие свойства перечисленных выше компонентов.
Таблица 5.2
|
Свойства компонента Form |
Name |
Имя формы |
Text |
Строка заголовка |
Size |
Размер (width – ширина, height – высота) |
FormBorderStyle |
Тип формы |
ControlBox |
Управление кнопками в строке заголовка |
Icon |
Значок в строке заголовка |
Font |
Шрифт для объектов на форме (по умолчанию) |
ForeColor |
Цвет символов у всех объектов на форме |
BackColor |
Цвет фона |
51
Таблица 5.3
|
|
Свойства компонента TextBox |
|
|
Text |
Текст в поле ввода |
|
|
MaxLength |
Количество символов |
|
|
PasswordChar |
Символ, отображаемы при вводе пароля |
|
|
MultiLine |
Несколько строк |
|
|
ReadOnly |
Запрет редактирования |
|
|
Dock |
Привязка к форме |
|
|
Lines |
Массив строк |
|
|
ScrollBars |
Полосы прокрутки |
|
|
|
Таблица 5.4 |
|
|
|
Свойства компонента Label |
|
|
|
|
|
|
Text |
Отображаемый текст |
|
|
AutoSize |
Автоматическое изменение размера |
|
|
TextAlign |
Выравнивание текста |
|
|
BorderStyle |
Вид рамки |
|
|
|
Таблица 5.5 |
|
|
|
Свойства компонента Button |
|
|
|
|
|
|
FlatStyle |
Стиль кнопки |
|
|
Enabled |
Доступность кнопки |
|
|
Visible |
Видимость кнопки |
|
|
Cursor |
Вид указателя мыши |
|
|
Image |
Картинка на кнопке |
|
|
ToolTip |
Подсказка рядом с кнопкой |
|
|
|
Таблица 5.6 |
|
|
Свойства компонентов CheckBox и RadioButton |
||
|
|
|
|
|
Text |
Текст справа от кнопки |
|
|
Checked |
Состояние кнопкп |
|
|
AutoCheck |
Автоматическое изменение состояния переключателя |
|
|
FlatStyle |
Стиль переключателя |
|
|
Appearance |
Вид переключателя |
|
|
|
Таблица 5.7 |
|
|
|
Свойства компонента ListBox |
|
|
|
|
|
|
Items |
Список строк |
|
|
SelectedIndex |
Номер выбранного элемента |
|
|
Sorted |
Автоматическая сортировка |
|
|
SelectionMode |
Режим выбора |
|
|
MultiColumn |
Несколько колонок |
|
52
Таблица 5.8
|
Свойства компонента ComboBox |
|
Text |
|
Текст на кнопке |
DropDownStyle |
|
Вид компонента |
Items |
|
Список строк |
Items.Count |
|
Количество строк |
SelectedIndex |
|
Номер выбранной строки |
Sorted |
|
Автоматическая сортировка |
MaxDropDownItems |
|
Количество отображаемых строк |
DropDownWidth |
|
Ширина области списка |
Свойства и параметры компонентов можно указывать непосредственно при построении формы в окне обозревателя свойств. После построения интерфейса в проект добавляют программный код обработки событий.
Пример программы
В программе создана функция Goroskop, которая в зависимости от значения глобальной переменной God выбирает название года и соответствующий рисунок, а также отображает эту информацию на форме в компонентах TextBox, Label, PictureBox. Номер выбора определяется с помощью формулы God Mod 12 + 1, где оператор Mod означает получение остатка от деления. Чтобы целое число разместить в поле TextBox, его преобразуют в строку с помощью метода ToString. Для размера рисунка выбирают свойство StretchImage, означающее, что он будет подогнан по размерам окна
PictureBox.
‘ Пример 5.1
Dim n As Integer
n = God Mod 12 + 1 TextBox1.Text = God.ToString()
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Затем функция выбирает название года и соответствующий рисунок с помощью оператора выбора Select-Case-End Select. Изображение в поле PictureBox загружается с помощью метода
System.Drawing.Image.FromFile.
‘ Пример 5.2
PictureBox1.Visible = True Select Case (n)
53
Case 1
Label1.Text = "Бык"
PictureBox1.Image = System.Drawing.Image.FromFile("1.jpg")
Case 2
Label1.Text = "Тигр"
PictureBox1.Image = System.Drawing.Image.FromFile("2.jpg")
Case Else
Label1.Text = "Неизвестен"
PictureBox1.Visible = False
End Select
При открытии формы в процедуре Form1_Load глобальной переменной god присваивается значение 2009, после чего вызывается функция goroskop, отображающая информацию, соответствующую числу 2009. Свойству SizeMode компонента PictureBox присваивается значение Zoom, означающее пропорциональную подгонку рисунка под размеры компонента.
God = 2009 goroskop()
PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
В функциях Button1_Click и Button2_Click значение переменной God уменьшается или увеличивается на 1. Это изменение отображается на форме с помощью функции goroskop. Изменить величину переменной можно непосредственно в поле TextBox, после чего также вызывается функция goroskop. Для преобразования строки из поля TextBox в целое число используется метод ToInt32 класса
Convert.
‘ Пример 5.3
if TextBox1.Text.Length > 0 Then God = Convert.ToInt32(textBox1.Text) goroskop()
End If
5.2. Задание на тему «Визуальные компоненты»
Создать приложение Windows Forms, осуществляющее выбор рисунков и текстовых строк, например «Гороскоп». Обязательно использовать компоненты Label, Button, TextBox, PictureBox, а также оператор выбора Select.
54
Порядок выполнения лабораторной работы
Создать новый проект – приложение Windows Forms.
Вынести на форму необходимые визуальные компоненты.
Добавить программный код обработки событий.
Компилировать программу.
Тестировать программу.
Создать документ с описанием работы программы.
5.3. Управляющие визуальные компоненты
Для управления работой программы в Visual Studio предлагаются множество визуальных компонентов, в том числе, управляющие кнопки, радиокнопки, меню, списки и др. Для того, чтобы пользоваться списком ListBox
необходимо иметь возможность размещать в нем строки для выбора, определять номер и текст выбранного пункта, сортировать строки списка. В табл. 5.9 приведены некоторые методы, предназначенные для работы со списком ListBox (рис. 5.2).
|
Рис. 5.2. Список ListBox |
|
|
Таблица 5.9 |
|
Методы, предназначенные для работы со списком ListBox |
||
|
|
|
Метод |
Описание |
|
GetSelected(номер) |
Выбран ли пункт с указанным номером |
|
SelectedIndex |
Номер выбранного пункта |
|
SetSelected(номер, true|false) |
Установить или отменить выбор пункта |
|
Sorted |
Сортировка строк |
|
Text |
Текст выбранной строки |
|
TopIndex |
Номер первой видимой строки |
|
ToString() |
Преобразование в тип String |
|
Аналогичное назначение имеет список CheckedListBox, который отличается от ListBox тем, что слева от строк в нем имеются поля для отметки пунктов галочкой (рис. 5.3).
55
Рис. 5.3. Список
CheckedBox
Текстовые меню понятны и удобны для пользователя. После размещения на форме компонента MenuStrip пользователю предлагаются возможные продолжения описания пунктов меню, новые пункты
добавляются щелчком мыши. После создания пункта выполняется добавление обработки события «Выбор пункта меню», которое начинается с двойного щелчка по созданному пункту (рис. 5.4).
Рис. 5.4. Компонент MenuStrip
Примеры работы со свойствами компонентов
Во фрагменте, представленном ниже, в имеющийся список ListBox добавляются 3 строки текста. После добавления один пункт (номер 0) выделяется. Отметим, что нумерация пунктов начинается с нуля.
‘ Пример 5.4
ListBox2.BeginUpdate() ListBox2.Items.Add("Авангард") ListBox2.Items.Add("Локомотив") ListBox2.Items.Add("Металлург") ListBox2.EndUpdate() ListBox2.SetSelected(0, true)
Во втором фрагменте в функции, обрабатывающей событие «Выбор в списке», определяются номер и текст выбранного пункта. Затем проверяется, выбран или нет пункт 4, а также определяется номер первого пункта, видимого в окне списка.
‘ Пример 5.5
Label1.Text = ListBox1.Text
56
Label2.Text = ListBox1.SelectedIndex.ToString()
Label3.Text = ListBox1.GetSelected(4).ToString()
Label4.Text = ListBox1.TopIndex.ToString()
5.4. Задание на тему «Управляющие визуальные компоненты»
Создать приложение Windows Forms, осуществляющее выбор рисунков и текстовых строк с помощью меню и списка. Обязательно использовать компоненты ListBox, MenuStrip, а также оператор выбора Select Case.
Порядок выполнения лабораторной работы
Создать новый проект – приложение Windows Forms.
Вынести на форму необходимые визуальные компоненты.
Добавить программный код обработки событий.
Компилировать программу.
Тестировать программу.
Создать документ с описанием работы программы.
5.5. Использование визуальных компонентов
Для того чтобы сделать какой-либо компонент активным, достаточно щелкнуть по нему мышью. В случаях, когда выгоднее программно передать состояние активности или «фокус» компоненту, необходимо выполнить команду, аналогичную указанной ниже. После данной команды поле ввода станет активным и в нем появится курсор ввода текста.
TextBox1.Focus()
Ряд компонентов предполагают выбор из нескольких вариантов. Иногда имеет смысл выбрать их программно. Ниже приводятся команды выбора компонентов CheckBox и RadioButton. После выполнения этих команд в соответствующих компонентам квадратике и кружочке появятся значки выбора.
CheckBox1.Checked = true RadioButton1.Checked = true
Для выбора произвольной строки компонента ComboBox нужно указать ее номер, учитывая, что нумерация начинается с нуля. В
57
примере ниже выбирается первая строка (ее номер равен 0). Текст выбранной строки появится в поле выбора. ComboBox1.SelectedIndex = 0
Иногда после некоторых событий требуется временно прекратить доступ пользователя к некоторому компоненту. Для этого нужно присвоить свойству Enabled значение false, как в примере ниже. Вернуть доступ к компоненту можно, присвоив этому свойству значение true.
TextBox1.Enabled = false
Компоненты, предназначенные для ввода и отображения информации TextBox, Label и др., содержат строковые данные. Числовые величины, размещаемые в Label, необходимо преобразовать в строковые. В первой строке ниже значение целочисленной переменной отображается как целое без дробной части, а во второй строке – как «коммерческое» с двумя знаками после десятичной точки и буквой «р» в конце.
Label1.Text = n.ToString() Label2.Text = n.ToString(“c”)
Для того чтобы определить, есть ли информация в поле ввода, можно проверить его длину, например:
If (TextBox1.Length>0) Then
Как было сказано выше, поле ввода TextBox содержит строковые данные. Если вводится число, то эти строковые данные необходимо преобразовать в соответствующий числовой тип. В примере, представленном ниже, команда в первой строке преобразует строку в целый тип, во второй – в вещественный с двойной точностью.
Dim n As Integer = Convert.ToInt32( textBox1.Text ) Dim x As Double = Convert.ToDouble( textBox1.Text )
Нужно отметить, что при вводе вещественного числа в TextBox целая часть от дробной отделяется запятой.
Выход из программы можно осуществить щелчком по кнопке с крестиком в строке заголовка. Также наглядно выполнять выход с помощью специальной управляющей кнопки. В процедуру обработки события (щелчок по кнопке) нужно добавить одну строку:
Close()
58