2 вопроса по TextBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

2 вопроса по TextBox

Сообщение xqz_me » 13.12.2005 (Вт) 21:16

Во-первых, как сделать так, чтобы в TextBox нельзя было ввести ни одного символа, кроме 0, 1, 2, ..., 8, 9, A, B, C, D, E, F? А во-вторых, как ограничить максимальное числа вводимых символов?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 13.12.2005 (Вт) 21:42

Отлавливаешь событие KeyPress:
Код: Выделить всё

If KeyAscii <> Asc(vbBack) Then ' Backspace
If Len(Text1.Text) > 10 Then KeyAscii = 0: Exit Sub
If Not IsNumeric(Text1.Text + Chr(KeyAscii)) Then KeyAscii = 0
End If

Можешь не через IsNumeric а перечислением.
Изображение

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 13.12.2005 (Вт) 21:45

Событие KeyPress можно запрограммировать чтобы ненужные символы не выводились. Насчёт вопроса номер два без обид, но протри глаза и посмотри свойства текстового поля для чего думаешь нужно MaxLength?
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 13.12.2005 (Вт) 22:07

Так там и свойство DataFormat есть... Умные люди говорили, что через него можно ненужные символы убрать (мне правда не объяснили, и я до сих пор не понял как :( )
Изображение

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Сообщение CORBA » 13.12.2005 (Вт) 22:29

keks-n писал(а):Так там и свойство DataFormat есть... Умные люди говорили, что через него можно ненужные символы убрать (мне правда не объяснили, и я до сих пор не понял как :( )


Скорее всего имелось виду, что если поле связано с БД то в него нельзя записать что-либо протеречивое формату самого поля в БД. Другими словами если у нас имеется в БД поле с форматом CHAR(1), то и в текстовое поле на форме можно ввести только один символ.
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 13.12.2005 (Вт) 22:33

А как без DataFormat ненужные символы не пропускать?

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 13.12.2005 (Вт) 22:56

Алфавит и цифры отлавливаются достаточно просто переводом символа в байт и сравнением с крайними значениями (1;0;A;Z). По крайней мере я делал так.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 13.12.2005 (Вт) 23:08

Можно примерчик для тех, кто на бронепоезде?

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 14.12.2005 (Ср) 6:43

Код: Выделить всё
k = KeyAscii
If Not (((k > 47) And (k < 57)) Or ((k > 64) And (k < 91)) Or ((k > 96) And (k < 122))) Then
'((k > 47) And (k < 57)) Числа
'((k > 64) And (k < 91)) Заглавные буквы
'((k > 96) And (k < 122)) Строчные буквы
  KeyAscii = 0
End If

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.12.2005 (Ср) 6:47

Ы?

Код: Выделить всё
select case keyascii
case 48 to 56, 65 to 90, 97 to 121
case else
  keyascii=0
end select
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 14.12.2005 (Ср) 6:54

Ы! , ну да я пишу некрасиво.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 14.12.2005 (Ср) 9:46

Спасиб :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 61

    TopList