Как отключить button с картинкой, чтобы она не становилась черно-белой?
У меня имеется несколько button, которые я создаю в коде и ставлю на них картинки. Далее я их отключаю через pressedButton.Enabled = false;
Но при этом картинки становятся черно-белыми. Есть какой-то способ, чтобы при отключении кнопки картинки оставались цветными?
Ответы (1 шт):
Можно ввести флаг обозначающий, должна ли отрабатывать кнопка или нет, и оперировать уже им.
public bool isButtonClickable { get; set; }
private void button1_Click(object sender, EventArgs e)
{
if(!isButtonClickable) return;
}
И, тогда, если этот флаг выставить в true, клик по кнопке не будет вызывать никакой логики. К этому же флагу можно привязать изменение фокуса, что бы кнопка не получала "синюю границу" при клике на неё.
private void Button1_GotFocus(object sender, EventArgs e)
{
if(!isButtonClickable)
{
// this - форма. Эта строка снимет фокус с кнопки
this.ActiveControl = null;
}
}
Или. Как компромис, можно выставлять ...Enabled = true и ...Enabled = false
на событиях MouseEnter и MouseLeave что бы показать пользователю что кнопка не работает, пока мышь находится на этой самой кнопке. А когда мышь не на кнопке, то кнопка будет выглядеть ровно как и обычная, с цветной картинкой.