подсвечивание активной кнопки winforms C#
У меня на форме установлены кнопки. Как сделать так что бы при активации кнопки она меняла цвет а при активации другой кнопки возвращался прежний цвет?
Ответы (2 шт):
Сначала создаем обработчики события для кнопок, затем создаем поле _defaultBackColor этот цвет будет по умолчанию. Поле _onClickBackColor будет отвечать за цвет, который появится после нажатия кнопки. Если вы не хотите использовать RGB, то можете выбрать встроенные цвета (к примеру Color.AliceBlue или Color.Yellow). Код будет выглядеть следующим образом: _defaultBackColor = Color.Yellow;
Ну а внутри обработчиков событий меняете цвет кнопки, которую только что нажали на цвет _onClickBackColor, а цвет другой кнопки меняете на _defaultBackColor
private Color _defaultBackColor;
private Color _onClickBackColor;
public Form1()
{
InitializeComponent();
//Тут задаете цвет, который будет по умолчанию
_defaultBackColor = Color.FromArgb(175, 175, 175);
_onClickBackColor = Color.FromArgb(111, 111, 111);
button1.BackColor = _defaultBackColor;
button2.BackColor = _defaultBackColor;
}
private void button1_Click(object sender, EventArgs e)
{
//Устанавливаете нужный вам цвет в RGB у первой кнопки
button1.BackColor = _onClickBackColor;
//Задаем цвет обратно
button2.BackColor = _defaultBackColor;
}
private void button2_Click(object sender, EventArgs e)
{
//Устанавливаете нужный вам цвет в RGB у второй кнопкиы
button2.BackColor = _onClickBackColor;
//Задаем цвет обратно
button1.BackColor = _defaultBackColor;
}
Я могу предожить немного более короткую запись идеи из предыдущего ответа:
namespace WindowsFormsApp1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
var defaultBackColor = button1.BackColor;
button1.GotFocus += (sender, args) => { button1.BackColor = Color.Red; };
button1.LostFocus += (sender, args) => { button1.BackColor = defaultBackColor; };
button2.GotFocus += (sender, args) => { button2.BackColor = Color.Red; };
button2.LostFocus += (sender, args) => { button2.BackColor = defaultBackColor; };
}
}
}
Но, в отличие от предыдущего ответа, я под "активацией" кнопки понимал не нажатие на неё, а то, что кнопка "выбрана", то есть просто игрался с сообытиями GotFocus - LostFocus