We have a Windows Forms project with quite a few FlatStyle buttons.
When we disable the buttons, the colors of the buttons are changed automatically Frown | :(
Is it possible to override this somehow, so we can control the colors ourselves?
You need to use the EnabledChanged event to set the desired color. Here is an example.
private void Button1_EnabledChanged(object sender, System.EventArgs e)
{
Button1.ForeColor = sender.enabled == false ? Color.Blue : Color.Red;
Button1.BackColor = Color.AliceBlue;
}
Use the desired colors according to your requirement.
Also you need to use the paint event.
private void Button1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
dynamic btn = (Button)sender;
dynamic drawBrush = new SolidBrush(btn.ForeColor);
dynamic sf = new StringFormat {
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center };
Button1.Text = string.Empty;
e.Graphics.DrawString("Button1", btn.Font, drawBrush, e.ClipRectangle, sf);
drawBrush.Dispose();
sf.Dispose();
}