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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Михайличенко В.Н |
Лабораторная работа №2 " Создание простых VB-приложений. Организация ввода/вывода и выбора из списков " |
7/7 |
Лабораторная работа №2
Тема: Создание простых VB-приложений. Организация ввода/вывода и выбора из списков
Цель работы: Изучить: свойства, методы и события управляющих элементов TextBox, ListBox.
Отчет: файлы проекта с выполненными заданиями.
[1] Оглавление [2] Класс и элемент Forma [2.1] Задание №1 [3] Элемент TextBox [3.1] Задание №2 [3.2] Задание №3 [4] Элемент ListBox [4.1] Задание №3 |
Каждая форма является экземпляром созданного вами класса. Размещаемые на форме элементы становятся ее компонентами. Их описание автоматически записывается в специальную процедуру InitializeComponent
Эта процедура вызывается конструктором формы New (вызывается автоматически)
Форма имеет много свойств и может реагировать на большой набор событий
Me.BackColor = Color.Aqua.
Для ввода новой информации могут использоваться управляющие элементы TextBox и ComboBox, а также функция InputBox.
Для выбора данных из предлагаемых альтернатив могут использоваться управляющие элементы ListBox, CheckedListBox и ComboBox.
Для вывода информации могут использоваться управляющие элементы TextBox, Label а также функция MsgBox и класс MessageBox.
Практически все управляющие элементы имеют свойство Enabled, определяющие его доступность (True) или недоступность (False).
Основное средство ввода и отображения текста. Может рассматриваться как миниатюрный текстовый редактор с возможностью вставки, удаления, копирования через буфер, прокручивания информации (если она не помещается в поле). По умолчанию элемент выводит на экран одну строку. Для возможности вывода нескольких строк установите свойство MultiLine в True.
Свойство ScrollBars определяет наличие полос прокрутки.
Свойство Text определяет текст, содержащийся в элементе. Его можно как считывать, так и устанавливать ( TextBox1.Text = TextBox2.Text ).
Выделение текста
Свойство SelectedText возвращает выделенный текст. С его помощью можно заменить текущее выделение на другое слово.
TextBox1.SelectedText="замена"
Свойства SelectionStart и SelectionLenght возвращают или устанавливают положение первого символа выделенного текста и его длину. Следующий код если найдет в тексте слово "Visual", то выделит его
Dim seekString As String = "Visual"
Dim textStart As Integer = InStr(TextBox1.Text, seekString)
If textStart > 0 Then
TextBox1.SelectionStart = textStart-1
'SelectionStart отсчитывает позиции от 0, а InStr от 1
TextBox1.SelectionLenght = Len( seekString)
TextBox1.Select() ' этот метод выделяет текст
End If
Создать новый проект.
Но пока для нас он имеет чисто декоративный эффект.
При нажатии на кнопку в тексте выделяется слово "Basic" и выделенный текст записывается в метку. У метки свойство AutoSize=True.
Операции с выделенным текстом
Выделенный в текстовом поле текст можно копировать в буфер вырезать и вставлять из буфера в текущую позицию.
textBox1.Copy()
textBox1.Cut()
textBox1.Paste()
Перед вставкой надо проверить, что в буфере находится текст
Clipboard.GetDataObject().GetDataPresent(DataFormats.Text)=True
К форме задания №2 добавить 3 кнопки, выполняющие с выделенным текстом операции копирования, вырезания в буфер и замены на текст из буфера.
При щелчке по метке с текстом "Selected text" правую метку должен выводиться выделенный в текстовом поле тест.
Замечание
Для выполнения операций копирования, вырезания и вставки можно использовать стандартные горячие клавиши Ctrl+C, Ctrl+X, Crtl+V!!!!! Отмена последнего действия с текстом Ctrl+Z.
Предоставляет пользователю список выбираемых альтернатив.
Пункты можно вставлять в элемент ListBox с помощью программного кода или устанавливать значение свойства Items в окне свойств.
Свойство Sorted можно устанавливать только во время проектирования. Элемент ListBox является текстовым элементом, поэтому числа хранятся и сортируются как строки (10 перед 5 т.к. 1<5). Сортируются элементы по возрастанию.
Свойство Items.Count возвращает количество элементов в списке. Используется только для чтения!
Свойство Items определяет массив (коллекцию) элементов списка: Items(0) первый, Items(1) второй, Items (ListBox1.Items.Count-1) последний элемент списка.
Свойство SelectedIndex возвращает индекс выбранного элемента списка. Если из списка не выбран ни один элемент, значение SelectedIndex отрицательно (1). Используется для чтения и записи.
Свойство SelectedItem возвращает выбранный элемент списка.
Программное выделение элемента списка
Для выделения элемента с индексом index используется метод listBox1.SetSelected(index, True).
Для снятия выделения с элемента с индексом index используется метод listBox1.SetSelected(index, False).
Можно ли в списке выбирать несколько элементов зависит от свойства SelectionMode, которое может принимать следующие значения
None |
Нельзя выделять |
One |
Можно выделить только один элемент |
MultiSimple |
Можно выделить несколько элементов |
MultiExtended |
Можно выделить несколько элементов, при выделении можно использовать клавиши SHIFT, CTRL и клавиши стрелки. |
Например:
'разрешаем выбор нескольких элементов
listBox1.SelectionMode = SelectionMode.MultiExtended
' Выделяем три элемента с индексами 0, 2 и 4.
listBox1.SetSelected(0, True)
listBox1.SetSelected(2, True)
listBox1.SetSelected(4, True)
Проверка состояния элемента списка
Метод GetSelected(index) возвращает True, если элемент списка с индексом i выбран, и False в противном случае
If listBox1.GetSelected(i) = True Then …
Доступ к коллекции выделенных элементов
Согласно справке, для доступа к коллекции выделенных элементов используется свойство SelectedObjectCollection, которое, в свою очередь, имеет свойство Count и метод Item(i). Но при использовании SelectedObjectCollection интерпретатор выдает ошибки.
Лучше использовать свойство SelectedItems, которое для списка с множественным выбором возвращает коллекцию выбранных элементов. Метод IndexOf позволяет получить индекс элемента по его значению. Так ListBox1.Items.IndexOf("Ростов") вернет индекс элемента списка "Ростов". Если такого элемента в списке нет вернется отрицаельное значение (-1).
Следующий код выводит список выделенных в ListBox1 элементов и их индексов.
Dim n As Integer
n = ListBox1.SelectedItems.Count
Dim selList As String = ""
Dim i As Integer
For i = 0 To n - 1
selList &= "Номер " & _ ListBox1.Items.IndexOf(ListBox1.SelectedItems.Item(i)) & _
" " & ListBox1.SelectedItems.Item(i).ToString & " " & vbCrLf
Next
MsgBox(selList)
Снятие выделения со всех элементов
listBox1.ClearSelected()
Свойство TopIndex
Свойство TopIndex определяет индекс самого верхнего элемента, видимого в списке. В следующем примере прокручивается список так, чтобы выделенный элемент оказался верхним в видимой части:
If listBox1.TopIndex <> listBox1.SelectedIndex Then
listBox1.TopIndex = listBox1.SelectedIndex
End If
Свойство Text возвращает значение элемента выбранного из списка последним.
Добавление элементов в список
Добавить элемент в список можно методом Add
ListBox1.Items.Add("Ростов")
Элемент списка "Ростов" для отсортированого списка будет добавлен в алфавитном порядке, для несортированного списка в конец.
Если надо добавить сразу несколько элементов, то, чтобы список не перерисовывался несколько раз, надо использовать методы BeginUpdate() и EndUpdate().
listBox1.BeginUpdate() ' запрещаем перерисовку списка
'записываем в список 50 элементов
Dim x As Integer
For x = 1 To 50
listBox1.Items.Add("Item " & x.ToString())
Next x
'Разрешаем перерисовку списка
listBox1.EndUpdate()
Добавить несколько элементов можно методом AddRange(array)
Dim ItemObject(9) As System.Object
Dim i As Integer
For i = 0 To 9
ItemObject(i) = "Item" & i
Next i
ListBox1.Items.AddRange(ItemObject)
Удаление элемента с индексом i
listBox1.Items.RemoveAt(i)
Удаление выделенного элемента
ListBox1.Items.Remove(ListBox1.SelectedItem)
Удаление элемента по значению
ListBox1.Items.Remove("Tokyo")
Очистка списка
ListBox1.Items.Clear()
3.1 К форме предыдущего задания добавить новый элемент GroupBox с заголовком "Задание №3"
3.2 На этом элементе разместить:
3.2.1) текстовое поле с именем txtInput;
под ним список ListBox1, в который записать 4-5 имен. Список допускает множественное выделение;
3.2.2) кнопку btnAdd, при нажатии которой строка из текстового поля добавляется в список;
3.2.3) кнопку btnRemove, при нажатии которой удаляется из списка строка, находящаяся в текстовом поле. Если такой строки нет в текстовом поле выводится соответствующее сообщение (MsgBox)
3.2.4) кнопку btnSelect, при нажатии которой в списке выделяется строка из текстового поля. Если такой строки нет в текстовом поле выводится соответствующее сообщение (MsgBox). Не забудьте убрать предыдущее выделение.
3.2.5) кнопку btnClear, при нажатии которой список очищается.
3.2.6) метку lblSelect, при щелчке которой в окно MsgBox выводится список выделенных элементов и из индексы.