Диалоговые окна ввода вывода




Элемент CheckedListBox

Добавление, удаление и вставка элементов списка осуществляется так же, как и для ListBox

В основном свойства совпадают со свойствами ListBox, но

¨ В этом списке можно отметить "птичкой" несколько элементов, но выделить только один. Несмотря на наличие свойства SelectionMode множественный выбор не устанавливаеться.

¨ Свойство CheckOnClick определяет, отмечается ли "птичкой" пункт при его выборе. При значении True выбор пункта сопровождается и выделением и пометкой. Повторный выбор стирает отметку, но оставляет выделение. Для повторной пометки надо щелкнуть квадратик.

¨ Метод SetSelected(i, True) выделяет пункт с индексом i, но не помечает его.

¨ Метод GetSelected(i) возвращает True, если i-ый пункт выделен (независимо от его отметки). Если i-ый пункт не выделен, возвращается False.

¨ Свойства SelectedItem и SelectedIndex представляют выделенный пункт и его индекс.

¨ Метод SetItemCheckState (i) позволяет программно пометить пункт с индексом i

CheckedListBox1.SetItemCheckState(i,CheckState.Checked)

или снять отметку

CheckedListBox1.SetItemCheckState(i,CheckState.Unchecked).

Выделение пункта при этом не происходит.

¨ Метод GetItemCheckState (i) позволяет определить, помечен ли пункт под номером index. Возвращает одно из значений: CheckState.Unchecked, CheckState. Checked, CheckState.Indeterminate. (CheckedListBox1.GetItemCheckState(indexChecked));

¨ Свойство СheckedIndices возвращает коллекцию индексов выбранных пунктов списка. Коллекция имеет свое свойство Count и метод Item(index).

¨ Свойство Items возвращает коллекцию индексов выбранных пунктов списка. Она имеет свое свойство Count и метод Item(index).

¨ Свойство Text возвращает строку из выбранного пункта.

 

Задание №1

1.1 На форме создать еще одну группу с заголовком "Задание №4".

1.2 В группе разместить элемент CheckedListBox и заполнить его свойство Items элементами так, чтобы появился вертикальный Scrollbar.

Один из элементов должен быть таким длинным, чтобы он не помещался по ширине окна списка. Для просмотра длинного текста установить в конструкторе свойство HorizontalScrollbar (True). Установить свойство CheckOnClick.

1.3 Под списком разместить кнопку, при нажатии которой будет выводится вся информацию о текущем состоянии списка. Например:

Отмечены три элемента:

номер 1 – хоккей,

номер 4- туризм,

номер 5 – коллекционирование марок.

Выделен элемент футбол под номером 0.

 

Элемент ComboBox

Подобен элементу ListBox, но занимает меньше места в свернутом состоянии. Существуют три стиля комбинированных окон. Используемый стиль определяется свойством DropDownStyle.

Раскрывающееся комбинированный список

ComboBox1.DropDownStyle = ComboBoxStyle. DropDown

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

Раскрывающийся список

Соответствует DropDownStyle = ComboBoxStyle. DropDownList

Представляет собой сворачивающийся ListBox, т.к. возможен только выбор из имеющихся альтернатив и нельзя непосредственно ввести любой текст.

Простое комбинированное окно

Соответствует DropDownStyle = ComboBoxStyle.Simple

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

Основные свойства и методы элемента ComboBox те же, что и у ListBox.

Отличие:

Невозможен множественный выбор;

Свойство Text возвращает строку, находящуюся в верхней части комбинированного списка. Если был выбран какой-либо элемент списка, то свойства Text и SelectedItem совпадают.

Наличие у комбинированного списка своего текстового поля приводит к появлению свойств, подобных свойствам текстового поля: SelectedText, SelectionLength, SelectionStart.

Замечание

По какой-то причине в текущей версии Visual Studio эти три свойства не работают.

Поиск элемента списка по его начальной подстроке

Все рассмотренные списки имеют метод

ObjList. FindString (string)

Метод осуществляет поиск первого элемента списка, который начинается с подстроки string. Возвращает индекс найденного элемента в списке. Если подходящий элемент не найден, возвращается -1. Если string — пустая трока (""), то функция будет находить все элементы списка.

ObjList. FindString (string,index)

Метод осуществляет поиск первого элемента списка, который начинается с подстроки string и располагается после элемента с индексом index.

Возвращает индекс найденного элемента в списке. Если подходящий элемент не найден, возвращается –1. К сожалению, функция "ходит по кругу", то есть при наличии в списке подходящих элементов, дойдя до конца списка, начинает поиск с начала.

Методы FindStringExact (string) и FindStringExact (string, index) подобны вышеописанным методам, но осуществляет поиск строк, полностью совпадающих со string.

 

Задание №2

2.1 Создать новую группу.

2.2 Разместить на ней управляющие элементы в соответствии с картинкой.

В нижней части рамки находится элемент ComboBox с фамилиями. Заполнить его 5-6 фамилиями.

Кнопка Add записывает в список строку, находящуюся в текстовом поле списка. Проверка наличия в списке подобного элемента не призводится.

Кнопка Remove удаляет из списка выбранный в списке элемент.

Кнопка Select выделяет в списке элемент, индекс которого берется из правого текстового поля.

Кнопка Find ищет и выделяет в списке первую строку, которая начинается с подстроки, находящейся в правом текстовом поле.

Кнопка Clear очищает список.

 

Диалоговые окна ввода вывода

Функция MsgBox

Используется для отображения окна сообщения. Синтаксис

MsgBox (prompt [, buttons ] [, title ] )

Функция имеет следующие аргументы:

Имя Описание
prompt Обязательный аргумент.Представляет собой строку сообщения, которое будет выводится в окно диалога. Максимальная длина – приблизитель-но1024 символа (в зависимости от кегля). Если сообщение состоит из нескольких строк, необходимо в качестве разделителя вставлять строковую константу vbCrLf (перевод каретки и переход на новую строку). "Это первая строка" & vbCrLf & "это вторая строка"
buttons Необязательный. Сумма символьных констант, определяющих количество и тип кнопок, иконку, кнопку, выделенную по умолчанию. Если параметр опущен, его значение по умолчанию равно 0.
title Необязательный. Строка заголовка окна сообщения. По умолчанию выводится имя приложения.

Например, вызов функции

MsgBox("Это окно сообщения", vbOkOnly, "Заголовок")

приведет к отображению этого окна.

Количество и типы кнопок в аргументе buttons определяются следующими константами

Константа Значение Описание
OKOnly   Только кнопка OK
OKCancel   Показать кнопки OK и Cancel
AbortRetryIgnore   Показать кнопки Abort, Retry, Ignore
YesNoCancel   Показать кнопки Yes, No и Cancel
YesNo   Показать кнопки Yes и No
RetryCancel   Показать кнопки Retryи Cancel

Выводимая в окне сообщения иконка в аргументе buttons определяются следующими константами

Critical  
Question  
Exclamation  
Information  

Выделенная по умолчанию кнопка в аргументе buttons определяются следующими константами

vbDefaultButton1   Первая кнопка срабатывает при нажатии Enter
vbDefaultButton2   Вторая кнопка срабатывает при нажатии Enter
vbDefaultButton3   Третья кнопка срабатывает при нажатии Enter
vbDefaultButton4   Четвертая кнопка срабатывает при нажатии Enter

Эта группа определяет поведение окна вывода.

ApplicationModal   Модальное окно приложения; пока пользователь не закроет окно сообщения, приложение не будет работать. Значение по умолчанию.
SystemModal   Системное модальное окно; все приложения приостанавливаются до тех пор, пока пользователь не закроет окно сообщения.
MsgBoxSetForeground   Окно сообщения всегда на переднем плане.

Параметр buttons определяется как сумма констант. Константы разных груп размещаются в разных битах и могут задаваться как численно, так и символьными константами.

i = MsgBox("Продолжить работу ", MsgBoxStyle.Critical + MsgBoxStyle.YesNo, "Демонстрация функции MsgBox")

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

Константа OK Cancel Abort Retry Ignore Yes No
Значение              

Все константы, описывающие возвращаемое значение, являются членами MsgBoxResult.

response = MsgBox(msg, style, title)

If response = MsgBoxResult.Yes Then 'нажали Да

Application.Exit() 'закрываем приложение

Else

' продолжаем работу

End If

Класс MessageBox

Использование статического класса MessageBox похоже на использование функции MsgBox. Посмотрите на пример и справку.

If MessageBox.Show ("Do you want to exit?", _

"My Application", MessageBoxButtons.YesNo, MessageBoxIcon.Question)= _

DialogResult.Yes Then

Application.Exit

End If

 

Функция InputBox

Используется для ввода строк. В окне ввода выводится приглашение. Ожидается пока пользователь не введет некоторый текст и не нажмет кнопку. Возвращается введенная строка.

InputBox(prompt [, title ] [, default ] [, xpos ] [, ypos ] )

Описание параметров:

Параметр Описание
Prompt Обязательный. Представляет строку сообщения, описывающую, что надо ввести. Максимальная длина – приблизительно1024 символа (в зависимости от кегля). Если сообщение состоит из нескольких строк, необходимо в качестве разделителя вставлять строковую константу vbCrLf или (Chr(13) & Chr(10)) (перевод каретки и переход на новую строку). "Привет!" & vbCrLf & "Как вас зовут?"
Title Необязательный. Строка заголовка окна сообщения. По умолчанию выводится имя приложения.
Default Необязательный. Строка, которая появляется в окне в качестве ответа по умолчанию. Если параметр опущен, место ответа остается пустым.
Xpos Необязательный. Расстояние в твипах левого края окна диалога от левого края экрана по горизонтали. Если параметр не указан, окно диалога центрируется по горизонтали.
Ypos Необязательный. Расстояние в твипах верхнего края окна диалога от верхнего края экрана по горизонтали. Если парамерт не указан, окно диалога размещается на одной трети высоты экрана.

Пример

strID = InputBox("Введите ваше имя", "Регистрация клиента", "User", 100, 100)

Если нажать кнопку Отмена, то вернется пустая строка. Тогда можно присвоить значение по умолчанию.

If strID = "" Then strID = "User"

 

Задание №3

3.1 Добавить группу с заголовком "Задание №3".

3.2 Кнопка Find All выводит в окно MsgBox все фамилии из комбинированного списка задания №2, которые начинаются с подстроки, введенной в правое текстовое поле.

Окно вывода должно быть таким, как на рисунке. Как побороть "хождение функции FindString по кругу"?

3.3 Кнопка Remove вызовом функции InputBox запрашивает фамилию, которую надо удалить из списка задания №1.

Затем функция MsgBox выводит окно запроса подтверждения удаления имени. При нажатии кнопки Да, имя записывается в метку, расположенную справа от кнопки Remove. Кнопка Да должна быть кнопкой по умолчанию.

При нажатии кнопки Нет, обработчик прекращает работу и правая метка очищается.

Если в списке нет искомой строки, выводится соответствующее сообщение.

3.4 Закрытие формы не закрывает приложение. Для этого используется код

Application.Exit()

Кнопка Exit запрашивает подтверждение закрытия (вызов MessageBox.Show()).

Нажатие Да – закрывает приложение, Нет – прекращает работу обработчика.

3.5 Для того, чтобы закрытие формы вызывало закрытие приложения, надо изменить метод формы Finalize().

В окне кода формы выбрать в левом списке Form, а в правом - Finalize(). Дописать строчку Application.Exit()

3.6 Нажатие кнопки Next открывает форму Form2, но только в том случае, если введен пароль (в примере — 123). Сама Form1 при этом не закрывается.

Если введен неправильный пароль, то появляется предупреждение, что форма не будет открыта (MessageBox).

3.7 Поместить на кнопки Exit и Next картинки. Для этого можно использовать как свойство Image, так и свойство BackgroundImage.

Для кнопки Exit назначить свойству Image файл btnexit3.gif, а ImageAlign – MiddleCenter. Не трогайте свойство ImageKey.

Для кнопки Next назначить свойству BackgroundImage файл btnnext3.gif. Попробовать разные значения свойства BackgroundImageLayout.

3.8 Форма Form2 имеет заголовок и BackgroundImage – image1.jpg.

Свойство BackgroundImageLayout имеет значение Center или Zoom.

 

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: