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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Перекрывание" клавиши 
:(
    Опции темы
Rays
Дата 8.12.2012, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток!
Небольшая проблемка, до решения которой пока ни как не могу дойти. Может, вы что посоветуете. 
По нажатию клавиш происходят разные события. По нажатию клавиши добавляю в таймер событие, при отпускании, соответсвенно, удаляю.

Вот так я добавляю событие  W в timer.Tick:
Код

private void FormAction_KeyDown(object sender, KeyEventArgs e)
        {
            if (!openPaint)
                return;
            switch (e.KeyCode)
            {
                case Keys.W:
                    {
                        if (Wchek)
                        {
                            Direction[0] = true; 
                            timer.Tick += W;
                            Wchek = false;
                        }
                        break;
                    }


Вот так убираю:
Код

private void FormAction_KeyUp(object sender, KeyEventArgs e)
        {
            if (!openPaint)
                return;
            switch (e.KeyData)
            {
                case Keys.W:
                    {
                        timer.Tick -= W;
                        Wchek = true;
                        Direction[0] = false; 
                        break;
                    }


Вот само событие W, если нужно:
Код

private void W(object sender, EventArgs e)
        {
            space.Back();
            DrawToBuffer(grafx.Graphics);
            this.Refresh();
        }


Вроде все равно и работает. Нажимаю клавишу, фигрука движется, отжимаю - останавливается. Но если при зажатой W нажать, к примеру, shift, а затем W отжать, фигурка не остановится, код по событию KeyUp не выполнится. 
Вот почему так происходит? Как исправить?)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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