Как отключить button с картинкой, чтобы она не становилась черно-белой?

У меня имеется несколько button, которые я создаю в коде и ставлю на них картинки. Далее я их отключаю через pressedButton.Enabled = false; Но при этом картинки становятся черно-белыми. Есть какой-то способ, чтобы при отключении кнопки картинки оставались цветными?


Ответы (1 шт):

Автор решения: ZecosMAX

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

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 что бы показать пользователю что кнопка не работает, пока мышь находится на этой самой кнопке. А когда мышь не на кнопке, то кнопка будет выглядеть ровно как и обычная, с цветной картинкой.

→ Ссылка