Ввод текста с ограничением возможных символов

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

Сообщение Eugenio » 12.01.2005 (Ср) 16:58

На textBox'е можно обрабатывать событие _KeyPress(ASCII as Integer)
Если символ тебе не подходит - замени в этой процедуре его код на 0:
Код: Выделить всё
ASCII = 0
Есть ли у меня вопрос? У меня всегда есть вопрос

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 12.01.2005 (Ср) 17:36

На textBox'е можно обрабатывать событие _KeyPress(ASCII as Integer)

Если пользователь вставить строку из буфера, это не поможет. Лучше следить за Text_Change()

Я тут примерчик отыскал, думаю тебе подойдет.
Вложения
check_string.rar
(1.56 Кб) Скачиваний: 32

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 12.01.2005 (Ср) 17:36

НА МОЙ ПРИМЕР, МОЖЕТ ЧЁ СООБРАЗИШ
Вложения
текстбокс для ввода время.zip
(1.67 Кб) Скачиваний: 161

Eugenio
Постоялец
Постоялец
 
Сообщения: 393
Зарегистрирован: 08.05.2004 (Сб) 13:27
Откуда: Ekaterinburg

Сообщение Eugenio » 12.01.2005 (Ср) 18:40

XairOn писал(а):Если пользователь вставить строку из буфера, это не поможет. Лучше следить за Text_Change()


Можно и не доводя до Text_Change - чтобы обработка не была заметна
Да и получается что: ты обрабатываешь Text_Change , при этом снова меняешь текст - снова генерится событие Text_Change и пошло..
По-моему - нафиг. На случай вставки из буфера:
отслеживать также _KeyDown. Например:
Код: Выделить всё
If    Shift And vbShiftMask Then
       If KeyCode = vbKeyInsert Then
            'тут проверяем буфер
        End If
    End If

AutoVerbMenu (если это RichTextBox) - отключить
Есть ли у меня вопрос? У меня всегда есть вопрос

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 12.01.2005 (Ср) 20:47

Roman Koff писал(а):Вроде же была какято возможность явно задать маску символов для ввода ...

Что-то не припомню я такого.

Eugenio, насчет твоего примера: ты не забывай, что есть ещё и меню, которым иногда тоже пользуются, да и к тому же CTRL+V никто не отменял и если отказаться от Text_Change придется все эти события вручную отлавливать и обрабатывать, а это ИМХО больший гимор...:-)

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 12.01.2005 (Ср) 20:53

step, к стати в твоей проге тот же глюк присутствует, из буфера если вставляешь прога это глотает да ещё и вылетает потом с ошибкой Type Missmatch :-)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Ввод текста с ограничением возможных символов

Сообщение tyomitch » 13.01.2005 (Чт) 1:43

Roman Koff писал(а):Например надо ввести название домена:
разрешенные символы соотв. - [a..z],[0..9],[-],[.]

Подчёркивание пропустил ;-)
Изображение

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Сообщение Emzari » 13.01.2005 (Чт) 2:46

Вот проект контролла текст бокса в котором предусмотрено ввод всех символов, толко заглавных символов, толко прописных, или толко цифров. можно доработать если понадобится.
Вложения
TextBox.zip
(21.93 Кб) Скачиваний: 30


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

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

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

    TopList