close

Вход

Забыли?

вход по аккаунту

?

курсовая (2)

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ "НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ "МИСиС"
Курсовая работа по дисциплине:
Макросы и приложения
На тему: "Создание маски ввода в Visual Basic"
Выполнил: студент группы И8-11-4 Панасенко И. А.
Принял: доцент кафедры АСУ Муратова С. Ю.
Москва 2013
Оглавление
Вступление3
MaskedEdit3
Использование событий TextBox5
Вступление
Существует 2 способа задания маски. Первый - использование специального компонента MaskedEdit, второй - наложение ограничений на ввод в обычном TextBox. Первый способ удобен тем, что не требует написание дополнительного специального кода, но он может не работать на современных компьютерах, так как компонент устарел. Для применения второго способа надо вручную написать код, но зато его можно будет использовать на любом компьютере.
MaskedEdit
MaskedEdit - специальный компонент для элемент ввода, в котором можно использовать маску ввода. Применение элемента редактирования с маской ввода позволит управлять информацией, вводимой в панель текста, без написания дополнительного кода. Для его использования, его нужно добавить на панель элементов. Для этого после щелчка правой кнопкой мыши по панели элементов выбрать "Additional Controls..." , затем поставить галочку напротив "Microsoft Masked Edit Control".
После этого на панели инструментов появится новый компонент:
При работе с элементами редактирования с маской ввода наиболее важным является свойство Mask. Можно устанавливать это свойство как при создании элемента, так и во время выполнения. Это свойство предназначено для задания маски, по которой пользователь вводит данные. По умолчанию свойство Mask не определено и поведение объекта Mask полностью аналогично обычному текстовому окну.
С помощью этой маски легко задать форматирование текста. Например, вот такое для ввода телефона: (###)###-##-##. После этого при вводе у пользователя будет шаблон:
Для задания маски можно использовать следующие символы:
Символ Описание#Требуется цифра..Десятичная точка.,Разделитель множества.:Разделитель для поля времени./Разделитель для поля даты.
?Требуется буква. Например, а - z или А - Z. & (или С)Требуется символ ASCII, код которого находится в промежутке 32-126 или 128 -255. >Переводит все вводимые символы в верхний регистр.<Переводит все вводимые символы в нижний регистр.АТребуется буква или цифра.а Позволяет ввести букву или цифру. 9Позволяет ввести цифру. Ниже приведены примеры готовых масок:
Маска Описание(###)###-##-##Номер телефона.## - ??? - ##
или ##-##-##
Дата.##:## ??Время######Почтовый индекс
Для получения данных из элемента существуют два свойства: Text и ClipText. Отличие этих свойств в том, что поле Text возвращает строку вместе с маской, а ClipText без маски. Ниже приведён пример данных, введенные в маску:
Давайте посмотрим как они будут возвращаться в случае применения этих двух свойств. Делаем код для кнопок:
Private Sub CommandButton1_Click()
MsgBox (MaskEdBox1.Text)
MsgBox (MaskEdBox1.ClipText)
End Sub
И смотрим результат:
В первом случае: (11)22
Во втором: 1122
Также полезно знать о событии Validation Error. Оно имеет место при попытке пользователя ввести неверные данные. (Это событие может использоваться только для установления факта ввода символа, не соответствующего маске.) Но оно используется очень редко.
Использование событий TextBox
Использование MaskedEdit удобно, но этот компонент устарел, поэтому на новых компьютерах его использовать не получится. В таком случае можно написать код, проверяющий обычный TextBox. У данного компонента есть событие KeyPress, которое возникает при нажатии любой клавиши, кроме системной в TextBox.
Для ввода маски для телефона необходимо написать следующий код:
Private Sub UserForm_Initialize()
i = 1
TextBox1.Text = "("
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If i >= 13 Then KeyAscii = 0
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
i = Len(TextBox1.Text)
If i = 0 Then TextBox1.Text = "("
If i = 4 Then TextBox1.Text = TextBox1.Text + ")"
If i = 8 Then TextBox1.Text = TextBox1.Text + "-"
If i = 11 Then TextBox1.Text = TextBox1.Text + "-"
End Sub
В данной программе мы проверяем, является ли каждый введённый символ цифрой функцией KeyAscii. Она возвращает стандартный числовой код клавиши ANSI. Для цифр коды идут в диапазоне от 48 до 57. Если ANSI-код нажатой клавиши не соответствует данному диапозону, то в TextBox ничего не добавляется. Счётчик i считает кол-во введённых символов, и в нужных местах добавляются символы "(" и "-". Для того, чтобы считать номер телефона следует добавить строчку:
Text = Mid(TextBox1.Text, 2, 3) + Mid(TextBox1.Text, 6, 3) + Mid(TextBox1.Text, 10, 2) + Mid(TextBox1.Text, 13, 2)
Похожим образом можно создать и маски для другого типа данных.
Документ
Категория
Рефераты
Просмотров
40
Размер файла
89 Кб
Теги
курсовая
1/--страниц
Пожаловаться на содержимое документа