112 / 99 / 68
Регистрация: 21.04.2014
Сообщений: 1,403
1

Убрать задержку при зажимании кнопки на клавиатуре

04.08.2015, 11:46. Показов 6803. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
У меня на форме есть квадрат (по сути маленький userComtrol), который меняет своё место положение по нажатию кнопок на клавиатуре, выглядит это так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            var location = kvadrat1.Location;
            switch (e.KeyCode)
            {
                case Keys.W:
                    location.Y -= 10;
            if (location.Y < 0)
                location.Y = 390;
            kvadrat1.Location = location;
            label1.Text = "X= " + kvadrat1.Location.X + " Y= " + kvadrat1.Location.Y;
            CheckCollision(kvadrat1.Location.X, kvadrat1.Location.Y);
                    break;
                case Keys.S:
                    location.Y += 10;
            if (location.Y > 390)
                location.Y = 0;
            kvadrat1.Location = location;
            label1.Text = "X= " + kvadrat1.Location.X + " Y= " + kvadrat1.Location.Y;
            CheckCollision(kvadrat1.Location.X, kvadrat1.Location.Y);
                   break;
 
            /*Ну и так далее*/
             }
        }
При однократном нажатии всё нормально, но если я зажимаю кнопку на клавиатуре, то происходит одно перемещение, потом задержка где-то на пол секунды и только после этого квадрат начинает быстро двигаться. Можно ли как-то убрать эту задержку на пол секунды?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2015, 11:46
Ответы с готовыми решениями:

Убрать задержку при запуске системы
Доброго времени суток! Вопрос: как убрать задержку при запуске винды? Раньше &quot;0&quot; задержку можно...

Как убрать задержку при переключении раскладки?
Здравствуйте. В Fedora при переключении раскладки еще примерно секунду система оставляет...

C++ sfml. Как убрать задержку клавиши при нажатии?
Доброго времени суток. При написании кода для игры столкнулся с проблемой: не удается убрать...

Как убрать задержку в OpenOffice при отключённой сети?
Доброго времени суток))Такие дела ребят.При отключении инета open office начинает долго думать...

3
93 / 94 / 51
Регистрация: 19.06.2013
Сообщений: 323
04.08.2015, 12:41 2
Лучший ответ Сообщение было отмечено FaceHoof как решение

Решение

FaceHoof, Пуск - Панель управления - Клавиатура - Задержка перед началом повтора

Это значение задержки можно изменить программно, могу подсказать код, но Вы же понимаете, что меняя это значение, оно будет действовать не только на Ваше приложение, но и повсюду.
1
112 / 99 / 68
Регистрация: 21.04.2014
Сообщений: 1,403
04.08.2015, 13:00  [ТС] 3
BroDIK, если значение изменится не только для моего приложения, то не надо.

Благодарю за ответ.
0
93 / 94 / 51
Регистрация: 19.06.2013
Сообщений: 323
04.08.2015, 14:04 4
FaceHoof, не спешите делать выводы! Можно ведь извернуться
Попробуйте через таймер, варьируя интервал таймера и новое значение положения квадрата. Может, Вас такой вариант устроит?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private bool isPressW = false;
 
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.W)
            isPressW = true;
    }
 
    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        isPressW = false;
    }
 
    private void timer1_Tick(object sender, EventArgs e)
    {
        var location = kvadrat1.Location;
 
        if (isPressW)
        {
            location.Y -= 10;
            if (location.Y < 0)
                location.Y = 390;
            kvadrat1.Location = location;
            label1.Text = "X= " + kvadrat1.Location.X + " Y= " + kvadrat1.Location.Y;
            CheckCollision(kvadrat1.Location.X, kvadrat1.Location.Y);
        }
    }
1
04.08.2015, 14:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2015, 14:04
Помогаю со студенческими работами здесь

Как на Arduino Nano убрать секундную задержку при загрузке?
Всем доброго дня. Была у меня задача одна по установке ардуинки в пром.автоматику на 3 прибора....

Как убрать задержку открытия базы при запуске MyVisualDatabase?
Всем привет. Я новичок в программировании. Использую вот эту среду...

Как убрать секундную задержку при загрузке аналоговых часов?
Имеется вот такой код. При загрузке страницы стрелки стоят на 12 часов, через секунду...

Как убрать задержку определения Touchpad при загрузке системы?
Доброго времени суток, форумчане! Собрал ядро 3.10.9 из сорцов, теперь при загрузке висит 60 сек...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru