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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужна помощь, хочу разобраться как использовать keydow 
:(
    Опции темы
Bezonik
Дата 19.10.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте, спецы! Мне нужна помощь в решении одного вопроса. У меня имеется форма, на ней имеются кнопки button и текст. поля textbox, мне необходимо использовать клавишу пробел на форме,  так, чтобы он действовал только для конкретного события, например вывод сообщения MessageBox....сейчас я привел пример условно
Часть кода, который я привожу



private void Form2Method_KeyDown(object sender, KeyEventArgs e)
{
 if (e.KeyCode == Keys.Space)
 MessageBox.Show("Нажат пробел"); 
}

.........
я нажимаю на пробел и сообщение выводится, но стоит мне нажать на кнопку расположенную на форме, и последующие нажатия на пробел, будут являться обработчиком события для этой кнопки, а мне нужно чтобы пробел действовал только для определенной цели....т.о. идея заключается в том, чтобы отключить для всех кнопок и textbox'ов клавишу пробел, но как это сделать я пока что не знаю. 


Народ, развиваем тему, кто чем может помогите пожалуйста!!!!!если есть идеи, давайте обсудим!
PM MAIL   Вверх
KelTron
Дата 19.10.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробуй установить свойство формы KeyPreview = true

И использовать такие обработчики событий:
Код

private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space)
            {
                e.Handled = true;
                MessageBox.Show("Pressed!");

            }
        }
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == ' ')
            {
                e.Handled = true;
            }
        }

Второй нужен, чтобы в текстбоксе пробелы не печатались.


Это сообщение отредактировал(а) KelTron - 19.10.2009, 18:35


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
KuMa1104
Дата 19.10.2009, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

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



Ну обычно если на форме несколько элементов то все нажатия и т.д. адресуються той  которая находиться в фокусе. Вот.
Если ты нажимееш на др. кнопу то она теперь в фокусе => надо всё время устанавливать фокус на твою кнопу, и тогда все нажатия пробела будут ей идти.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Bezonik
Дата 20.10.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(KelTron @ 19.10.2009,  18:22)
Попробуй установить свойство формы KeyPreview = true

И использовать такие обработчики событий:
Код

private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space)
            {
                e.Handled = true;
                MessageBox.Show("Pressed!");

            }
        }
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == ' ')
            {
                e.Handled = true;
            }
        }

Второй нужен, чтобы в текстбоксе пробелы не печатались.

KelTron большое спасибо за помощь, твое решение оказалось верным!!!

Добавлено через 57 секунд
Впринципи тему можно закрыть, вопрос решен! спасибо, кто посодействовал в его решении
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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