Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.02.2015
Сообщений: 7
1

Перекрасить кнопку пока она нажата

26.02.2015, 16:02. Просмотров 1473. Ответов 9
Метки нет (Все метки)


Возможно ли как то сделать, что пока будет нажата кнопка на форме - у нее будет иной цвет?
Варианты изменения цвета при наведении мыши не интересны, поскольку нажатия в основном будут происходить комбинациями.
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2015, 16:02
Ответы с готовыми решениями:

Пока нажата клавиша
Приветствую всех. Просветите пожалуйста как сделать чтобы событие происходило пока нажата клавиша....

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

Реализовать выполнение метода в фоне до тех пор пока не нажата кнопка стоп
Здравствуйте) Подскажите пожалуйста какой класс использовать для создания потока или может есть...

Как сделать кнопку которая выполняет что либо когда она только нажата а убираешь палец нет
Мне нужно сделать пульт для управления. Сейчас сделал так кликнул на кнопку (onClick) актуатор...

9
483 / 396 / 68
Регистрация: 14.02.2014
Сообщений: 1,927
26.02.2015, 17:22 2
Ну ё-моё, что мешает внимательно посмотреть какие события есть у кнопки? MouseDown, MouseUp. Это ведь совсем не сложно...
0
0 / 0 / 0
Регистрация: 17.02.2015
Сообщений: 7
26.02.2015, 18:41  [ТС] 3
ну ё-моё, а что мешает прочитать в сообщении, что не интересует слежение за мышью? мышью их жать будут не всегда. чаще всего комбинацией горячих клавиш. а реакция на нажатие кнопки - необходима.
0
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 5
27.02.2015, 07:45 4
Есть KeyPress, KeyDown, для варианта.
0
0 / 0 / 0
Регистрация: 17.02.2015
Сообщений: 7
27.02.2015, 08:07  [ТС] 5
KeyDown и KeyUp при работе с комбинациями реагируют только, если button был в фокусе при нажатии.
а KeyPress перекрашивает кнопку и не отменяет покраску если кнопку уже больше не нажимать...
0
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 5
27.02.2015, 08:15 6
Тогда,
нужно условие
if {
Кнопка нажата = красный;
}
if {
Кнопка теряет фокус = начальный цвет;
}
и это нужно вместить в одно событие
0
0 / 0 / 0
Регистрация: 17.02.2015
Сообщений: 7
27.02.2015, 09:44  [ТС] 7
вот именно с этим у меня и возникает вопрос... как осуществить проверку этих условий?(
0
483 / 396 / 68
Регистрация: 14.02.2014
Сообщений: 1,927
27.02.2015, 09:46 8
Если кнопка (и комбинация) запускает выполнение какого-нибудь метода, то в этом методе и раскрашивай кнопку
0
901 / 662 / 132
Регистрация: 01.03.2010
Сообщений: 1,243
27.02.2015, 10:27 9
yay,

1. Поставь в свойствах формы KeyPreview = true, что бы отслеживать нажатие клавиш в не зависимости от фокусов контролов.

2. Создай события нажатия и отпускания для мышки и формы.

3. Код. Например, кнопку нужно нажать клавишей А или мышкой
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
28
29
30
        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            button1.BackColor = Color.Aqua;
        }
 
        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            button1.BackColor = Color.Gray;
 
        }
 
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.A:
                    button1_MouseDown(null, null);
                    break;
            }
        }
 
        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.A:
                    button1_MouseUp(null, null);
                    break;
            }       
        }
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,244
27.02.2015, 15:59 10
Евгений В, хм, так получается можно и хук на перехват клавишь не писать ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2015, 15:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Сделать кнопку "Далее" некликабельной пока не нажата кнопка "Старт"
Подскажите пожалуйста)

пока нажата кнопка. !
Имеются допустим 2 кнопки на каждую из них при нажатии выполняется действие . Проблема заключается...

while (!KEY){} // Пока нажата
Здраствуйте, уже думал вырос из таких элементарных вещей. Символ К дважды приходит, хотя должен 1...

Действие пока нажата кнопка
Всем привет, у меня такой вот вопрос. Как сделать проверку на нажатую кнопку на клавиатуре?...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.