Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Использование списков





Давайте продолжим работу с проектом, который мы создали на предыдущем занятии.

Вспомним: имя файла, в который записывается информация вводилось в текстовом поле txtFileName. Для того чтобы облегчить жизнь пользователю, по-умолчанию, свойство text имело какое-то значение (например, "Мой файл.txt").

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

Поле со списком (ComboBox) — это по сути комбинированный список, который представляет собой комбинацию двух элементов управления — самого списка со значениями и поля ввода текста (текстового поля).

Список (ListBox) — позволяет пользователю выбирать из списка один или несколько элементов. В любое время в список можно добавлять новые элементы или удалять существующие. Если не все элементы могут одновременно отобразиться в поле списка, то в нем автоматически отображаются полосы прокрутки.

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

Для поля со списком важную роль играют события как поля ввода, так и списка. Основные из них - Click, используемое для выбора элемента списка, и - Change — для изменения записи в поле ввода текста.

Поле со списком имеет почти все свойства текстового поля (TextBox) и списка (ListBox) (исключением является свойство MultiLine). Однако особо следует выделить свойство Style, определяющее внешний вид и функционирование поля со списком.

Откройте проект. Замените текстовое поле на поле со списком.

Задайте имя объекту - cboFileName, и задайте элементы списка (свойство List).

Свойство списка Text — самая простая возможность получить текст выбранного элемента списка. В любой момент времени значение этого свойства содержит текст выбранного элемента списка или пустую строку, если ни один элемент не выбран. Для определения текста выбранного элемента существуют и другие возможности. Однако следует помнить, что и в памяти все элементы списка сохраняются в виде списка. При этом первый элемент списка имеет индекс 0.

Присвоим этому свойству значение "Мой файл.txt" - это будет значение по-умочанию.

Запустим проект на выполнение. Теперь пользователь может выбрать имя для файла из списка или ввести самостоятельно. Но если щелкнуть кнопку СОХРАНИТЬ, то появится сообщение об ошибке. А все оттого, что мы не исправили код записи в файл. Имя файла берется из текстового поля, но ведь мы его заменили на список.

Private Sub cmd1_Click()
If Len(txtFileName.Text) Then
If Option1.Value = True Then Open txtFileName.Text For Append As #1
If Option2.Value = True Then Open txtFileName.Text For Output As #1
Print #1, txtInput.Text
Close #1
If Check1.Value = 1 Then txtInput.Text = ""
Else
MsgBox "Необходимо ввести имя файла", vbExclamation, "Внимание!"
End If
End Sub

Исправим этот код.

Private Sub cmd1_Click()
If Len(cboFileName. Text) Then
If Option1.Value = True Then Open cboFileName. Text For Append As #1
If Option2.Value = True Then Open cboFileName. Text For Output As #1
Print #1, txtInput.Text
Close #1
If Check1.Value = 1 Then txtInput.Text = ""
Else
MsgBox "Необходимо ввести имя файла", vbExclamation, "Внимание!"
End If
End Sub

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

Private Sub cmd1_Click()
If Len(cboFileName.Text) Then
cboFileName.AddItem (cboFileName.Text)
If Option1.Value = True Then Open cboFileName.Text For Append As #1
If Option2.Value = True Then Open cboFileName.Text For Output As #1
Print #1, txtInput.Text
Close #1
If Check1.Value = 1 Then txtInput.Text = ""
Else
MsgBox "Необходимо ввести имя файла", vbExclamation, "Внимание!"
End If
End Sub

Теперь при щелчке по кнопке ЗАПИСЬ в список добавляется новое значение. Но теперь появилась одна неприятная особенность - при записи в один и тот же файл, его имя несколько раз добавляется в список. Исправим это. Прежде чем добавить значение в список, переберем его и проверим нет ли уже такого значения. Переменную already будем использовать как флаг, который будет указывать нашли (1) или не нашли (0) такое значение в списке.

Private Sub cmd1_Click()
If Len(cboFileName.Text) Then
For i = 0 To cboFileName.ListCount
If cboFileName.List(i) = cboFileName.Text Then already = 1
Next i
If already = 0 Then
cboFileName.AddItem (cboFileName.Text)
If Option1.Value = True Then Open cboFileName.Text For Append As #1
If Option2.Value = True Then Open cboFileName.Text For Output As #1
Print #1, txtInput.Text
Close #1
If Check1.Value = 1 Then txtInput.Text = ""
Else
MsgBox "Необходимо ввести имя файла", vbExclamation, "Внимание!"
End If
End Sub

Готово! Запустите проект и проверьте его работу.

 

Учимся программировать!
Конспекты школьника.







Дата добавления: 2015-09-07; просмотров: 403. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Гальванического элемента При контакте двух любых фаз на границе их раздела возникает двойной электрический слой (ДЭС), состоящий из равных по величине, но противоположных по знаку электрических зарядов...

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

Studopedia.info - Студопедия - 2014-2026 год . (0.012 сек.) русская версия | украинская версия