In fact the BackColor of control doesn't change and only ForeColor and BorderColor change. Set FlatStyle to Flat, Set a non system BorderColor in FlatAppearance, Set a non system BackColor and you will see background and border will not change. Only ForeColor changes to show difference of enabled and disabled button.