Hello Dian,
The normal backcolor of the button is given by a
FillPrimitive which is using a Gradient, so that's the reason why you cannot just change the background color of the button.
To change this, you have to get the FillPrimitive and using the
GradientStyle property you can change the type of gradient (Gel, Glass, etc.), and the color to use.
Keep in mind, applying a BackColor like that will override any setting to the BackColor coming from a theme, and also it will cause the OnHover state to be less visible.
Hope this helps, if you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga