Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [VC#] Обработка нажатия клавиши '@', Клавиша 0x40 - '@' 
V
    Опции темы
MuForum
Дата 19.1.2009, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 427
Регистрация: 13.6.2007
Где: Молдова, Кишинев

Репутация: 2
Всего: 4



Доброе время суток!
Задача: Отфильтровать все не нужные клавиши.
- Входные данные для email адреса. (Имя@домен.зона)
- Данные вводятся в 'TextBox', для обработки использую событие 'OnKeyDown', для самого отсеивания уже 'OnKeyPress'.
- Проблема: Не могу отфильтровать клавишу '@'.

Код

        private void tb_email_KeyDown(object sender, KeyEventArgs e)
        {
            if ((e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z) || e.KeyCode == Keys.Back || e.KeyCode == Keys.Space ||
                (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) || (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) ||
                e.KeyCode == Keys.OemQuotes || e.KeyCode == Keys.Decimal || e.KeyCode == Keys.Subtract ||
                e.KeyCode == Keys.OemMinus || e.KeyCode == Keys.ShiftKey)
            {
                tb_email.Tag = "";
            }
            else tb_email.Tag = null;
        }
        //---------------------------------------------------------------------------
        
        private void tb_email_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (tb_email.Tag == null)
            {
                WLog(TMessages.MReg.eSynEmail);
                e.Handled = true;
            }
        }
        //---------------------------------------------------------------------------

- если сравнивать с константой 'Keys.ShiftKey', то дозволенно вводить все доп.клавиши строки значений: !, @, #, $, %, ^, &, *, (, ).
- Если пытаться обработать по коду клавиши '@' - это значение 0x40, тоже не выходит, так как у всех этих символов такой же код.


P.S. -> Использовал google, читал msdn, но ответ не смог найти =(


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли)
PM MAIL WWW ICQ Skype MSN   Вверх
QryStaL
Дата 19.1.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 10
Всего: 32



Цитата(MuForum @  19.1.2009,  21:46 Найти цитируемый пост)
Проблема: Не могу отфильтровать клавишу '@'.


Код

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)64)
            {
                //...
            }
        }



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Sfate
Дата 19.1.2009, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Angry Beaver
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 7.9.2008
Где: mov AL, BL

Репутация: нет
Всего: нет



как вариант
Код

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '@')
            {
                //...
            }
        }

хотя тож самое по сути что и QryStaL написал(а)...
--------------------
"Начинающий программист твердо уверен, что в 1 кбайте 1000 байт, а опытный точно знает, что в 1 километре 1024 метра..." © Unknown
PM MAIL WWW ICQ   Вверх
MuForum
Дата 19.1.2009, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 427
Регистрация: 13.6.2007
Где: Молдова, Кишинев

Репутация: 2
Всего: 4



#2,3, QryStaL, Sfate - Как вариант пойдёт. (Я сам так сделал)
- Но вопрос то звучал по другому: Как это реализовать в функции 'OnKeyDown()'.


P.S. -> Прошу помочь именно с реализацией в 'OnKeyDown()', а не 'OnKeyPress()'.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли)
PM MAIL WWW ICQ Skype MSN   Вверх
QryStaL
Дата 20.1.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 10
Всего: 32



Код

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Shift && e.KeyCode == Keys.D2)
            {
                //...
            }
        }



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.