Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа № 2-6

.pdf
Скачиваний:
23
Добавлен:
25.03.2016
Размер:
652.24 Кб
Скачать

Лабораторная работа № 2-6 Создание и настройка элементов управления с поддержкой редактирования текста и

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

Элемент управления TextBox

TextBox – это основной элемент управления, с помощью которого можно принимать вводимый пользователем текст, а также отображать текст для пользователя. Существует возможность создавать как поля, отображающие многострочный текст, так и поля, отображающие знак пароля вместо реально введенного текста.

Элемент управления TextBox предоставляет свойства, позволяющие конфигурировать его поведение. Основные свойства элемента управления TextBox представлены ниже.

Основная задача элемента управления TextBox состоит в том, чтобы предоставить контейнер для редактируемого текста. Пользователи могут вводить текст в поля или редактировать текстовые данные, отображаемые приложением. Текст, который содержится

в свойстве TextBox, доступен при использовании свойства Text. Текст в элементу управления TextBox можно редактировать, если свойству ReadOnly задано значение по умолчанию False. Если свойству ReadOnly задано значение True, пользователь не может редактировать отображаемый текст.

Создание многострочного элемента управления TextBox

Элементы управления TextBox являются однострочными по умолчанию, но вы можете создать многострочный TextBox, задав свойству MultiLine значение True. Это позволит изменить размеры элементы управления TextBox как в вертикальном направлении, так и в горизонтальном.

Когда свойству MultiLine задано значение True, важно обратить внимание на несколько других свойств. Свойство Lines предоставляет массив строк, который содержит отдельные строки элемента управления TextBox. Свойство ScrollBars указывает, будут ли отображены полосы прокрутки элементов управления TextBox и какие именно – горизонтальные, вертикальные или и те, и другие. Свойство WordWrap указывает, будут ли слова автоматически переходить с одной строки на другую. Помните, если свойству WordWrap задано значение True, полосы прокрутки отображаться не будут. даже если свойству ScrollBars задано значение Horizontal.

Создание элемента управления TextBox для ввода пароля

С помощью свойства PasswordChar или UseSystemPasswordChar можно создать поле, принимающее текстовый ввод, но вместо реально введенного текста отображается маскирующий символ, представляя введенный пользователем текст невозможным для прочтения наблюдателю. Чаще всего такой метод используют при создании поля для ввода пароля. Если PasswordChar присвоен какой-либо символ (например, звездочка), то этот символ будет отображаться при каждом введении пользователем символа в поле. Обратите внимание, что реально введенные пользователем символы будут сохраняться в свойстве Text – изменится только их отображение в пользовательском интерфейсе. Кроме того, свойству UseSystemPasswordChar можно задать значение True, при котором вес пользовательский ввод визуально представляется в виде символа-пароля, заданного на уровне системы. Если UseSystemPasswordChar равен True, а PasswordChar присвоен какой-

либо символ, использоваться будет символ-пароль, заданный на уровне системы.

Элемент управления MaskedTextBox

Элемент управления MaskedTextBox – это видоизмененный элемент управления TextBox, позволяющий задавать предварительно установленный шаблон для принятия пользовательского ввода или отказа от него. С помощью свойств Mask можно указать обязательные или необязательные символы либо тип вводимых символов (буквы или цифры) и применить форматирование для отображения строк. Основные свойство элемента управления MaskedTextBox представлены ниже.

Свойство Mask

Свойство Mask – самое важное свойство элемента управления MaskedTextBox. Оно позволяет определять строку, которая представляет собой обязательный формат строки ввода в MaskedTextBox. Класс MaskedTextProvider, связанный с элементом управления MaskedTextBox, предоставляет механизм синтаксического разбора, который анализирует формат Mask. Закодированные символы, используемые MaskTextProvider по умолчанию, представлены ниже.

Создать маску для маскирующего поля можно посредством создания строки, состоящей из символов, описанных выше. Установка свойства Mask элемента управления MaskedEditBox ограничивает возможный ввод форматом, который определяется строкой маски. Некоторые примеры строк маски вместе со строками ввода и вывода, отображаемые элементом управления, представлены ниже.

Настройка элемента управление MaskedTextBox для ввода пользователя

Кроме свойства Mask у элемента управления MaskedTextBox есть несколько свойств, влияющих на поведение элемента управления при вводе пользователя. Свойство AsciiOnly определяет, только ли символы ASCII допускаются при вводе. Если свойству задано значение True, допустим ввод лишь букв a-z и A-Z – все остальные символы отклоняются. Вы можете настроить элемент управления так, чтобы пользователь уведомлялся об ошибке, задав свойству BeepOnError значение True. Свойство SkipLiterals определяет: вводить повторно (если присвоено значение False) или пропускать литеральные символы в элементе управления MaskedTextBox (если присвоено значение

True).

Свойство RejectInputOnFirstFailure управляет обработкой текста, вставленного в элемент управления MaskedTextBox. Когда вставляется строка, не соответствующая формату Mask, элемент управления MaskedTextBox отклонит всю строку, если свойство RejectInputFirstFailure задано значение True. В случае значения False элемент управления MaskedTextBox примет все соответствующие формату Mask символы.

Свойство Prompt задает символы, отображаемые элементами управления MaskedTextBox, когда нет ввода для указанной позиции. Значение по умолчанию свойства

Prompt – знак подчеркивания (_). Свойства AllowPromptAsInput и ResrOnPrompt

управляют интерпретацией приглашающего символа при его вводе. Если свойству ResetOnPrompt заданное значение True, приглашающие символы будут приняты, Mask будет задана позиция символы, а курсор переместится на следующую позицию. Если свойству ResetOnPrompt задано значение False, а AllowPromptAsInput присвоено значение True, тогда приглашающий символ будет рассматриваться как обычный ввод. Если обоим свойствам задано значение False, приглашающий символ будет отклонен. Свойство RestOnSpace управляет обработкой пробелов точно так же, как свойство ReserOnPrompt управлеят обработкой приглашающих символов.

Управление текстом в элементе управления MaskedTextBox

Текст, показанный в элементе управления MaskedTextBox, необязательно доступен пользователю при вырезании и вставке либо приложению, когда текстом управляют программно. Свойство CutCopyMaskFormat определяет, как обрабатывается текст в элементе управления MaskTextBox, когда пользователь вырезает или копирует этот текст. По умолчанию ему задано значение IncludeLiterals, означающее, что при вырезании или копировании текста литеральные символы маски учитыватся, а приглашающие – нет. Кроме того, этому свойству можно задать значение ExcludePromptAndLiterals – исключающее как литеральные символы, так и приглашающие; IncludePrompt – учитывающие приглашающие, но исключающие литеральные, а также IncludePromptAndLiterals – учитывающие и приглашающие, и литеральные символы. Свойство TextMaskFormst предоставляет те же значения и функционирует таким же образом по отношению к возвращаемому свойством Text тексту.

Обзор элементов управления списка

ListBox, ComboBox и CheckedListBox – основные элементы управления списка. Несмотря на некоторые внешние отличия во внешнем виде и разные функциональные возможности, они одинаково формируют и представляют списки данных и включают в себя коллекцию Items, которая систематизирует элементу, содержащие один из этих элементов правления.

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

Элемент управления ListBox

ListBox – самый простой элемент управления списка. Он служит главным образом для отображения простого списка элементов в пользовательском интерфейсе, по которому легко перемещаться. Пользователи могут выбирать один или несколько элементов. Ниже представлены основные свойства элемента управления ListBox.

Элемент управления ComboBox

Элемент управления ComboBox похож на ListBox, но он не только дает возможность пользователю выбирать элементы из списка, но и предоставляет ему место

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

Элемент управления CheckedListBox

Элемент управления CheckedListbox отображает список элементов и дает возможность пользователю выбирать несколько элементов, установив флажки, расположенные рядом с элементом. Выбрать можно столько элементов, сколько необходимо, но по одному элементу за раз. Чтобы получить коллекцию выбранных элементов, нужно обратиться в коллекцию CheckedItems, а если нужна коллекция выбранных индексов – в коллекцию CheckedIndices. Ниже представлены основные свойства элемента CheckedListBox.

Если вы хотите сделать элемент выбранным или небранным, вызовите метод

SetItemChecked, как показано ниже:

CheckedListBox1.SetItemChecked(0, True)

Также можно использовать метод SetItemCheckState для установки свойства

CheckState элемента:

CheckedListBox1.SetItemCheckState(0, CheckState.Indeterminate)

Добавление элементов в элемент управления списка и удаление из него

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

Если нужно во время разработки добавить элементы в элемент управления списка, выберите в конструкторе элемент управления, а затем в окне Properties – свойство Items. Откроется редактор коллекции строк (рис. 1), и на экране отобразятся все элементы, которые на тот момент будет содержать элемент управления. Вы можете добавлять или удалять элементы из этого списка.

Рис. 1. Редактор коллекции строк.

Чтобы программным путем добавлять и удалять элементы управления во время выполнения, можно также воспользоваться кодом. Для добавления элемента используйте метод Items.Add, как показано в следующем примере кода:

ListBox1.Items.Add(“Новая строка”)

При необходимости добавить сразу несколько элементов можно воспользоваться методом AddRange и добавить в элемент управления массив элементов, как показано ниже:

Listbox1.Items.AddRange(New String() {“Item1”, “Item2”, “Item3”})

Спомощью метода Item.Insert можно добавлять элемент в отдельный индекс списка. Индекс элементов – это индекс на основе нуля, поэтому первый элемент в элементе управления стоит под индексом 0. Когда вы добавляете элемент в индекс, который уже занят элементом, этот элемент и все элементы под ним сдвигаются вниз на один индекс. Следующий код демнострирует, как вставить элемент таким образом, чтобы он шел третьим в отображаемом списке, при условии, что элемент управления Listbox1 уже заполнен несколькими элементами.

ListBox1.Items.Insert(2, “This item will be 3”)

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

Items.Remove:

ListBox1.Items.Remove(“This string will be remove”)

Методом Items.RemoveAt можно воспользоваться, если элемент, который необходимо удалить во время выполнения, вам неизвестен, но у вас есть его индекс. Данный метод удаляет элемент под указанным индексом и располагает индексы остальных элементов в соответствующем порядке. Следующий код демонстрирует метод

Items.RemoveAt:

ListBox1.Items.RemoveAt(3)

Чтобы удалить все элементы из элемента управления списка, воспользуйтесь методом Items.Clear, как показано ниже:

ListBox1.Items.Clear()

Определение расположения элемента в списке

Определить расположение элемента в списке программным способом можно с помощью метода Items.IndexOf. Данный метод принимает элемент, который необходимо найти, за аргумент и возвращает целое число, представляющее индекс этого элемента. Если элемент не был найден в коллекции Items, метод IndesOf возвращает -1. Пример метода IndexOf показан ниже:

Dim anIndex As Integer

anIndex = Listbox1.IndexOf(“a string”)

В элементах управления, свойству SelectionMode которых задано значение MultiSimple или MultiExtended, все выбранные индексы можно возвратить с помощью свойства SelectedIndices, как показано в следующем пример:

For each i as Integer In ListBox1.SelectedInices Msgbox(Listbox1.Items(i))

Next

Сортировка в элементах управления списка

Вы будете иметь возможность сортировать объекты, которые отображаются в элементе управления списка, если зададите свойству Sorted значение True, как показано ниже:

ListBox1.Sorted = True

Установка формата элементов, отображаемых в элементе управления списка

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

Задать формат элементу управления списка можно, установив свойство FormstString во время разработки. Для запуска диалогового окна Format String Dialog (рис. 2) нужно выбрать свойство FormstString и щелкнуть в окне Properties.

Рис. 2. Диалоговое окно Format String Dialog

Свойство FormattingEnabled определяет, нужно ли использовать форматирование, указанное свойством FormatString. Когда свойству FormsttingEnabled указано значение True, записи в элементе управления будут отображаться в формате, указанном свойством

FormatString.

Нестандартное форматирование строк. Если заданные форматирующие строки