ControlPaint methods do not support visual styles, so everything looks messy (try outputting this line of code in Program.cs Application.EnableVisualStyles () and everything will look like this button, and you will see what I mean.)
The correct method you should use is the ButtonRender.DrawButton (..) method . It performs clear visual styles and thus displays them correctly. Quick example:
ButtonRenderer.DrawButton(this.CreateGraphics(),
new Rectangle(20, 20, 100, 40),"Click me!",
new Font(this.Font, FontStyle.Regular),false,
System.Windows.Forms.VisualStyles.PushButtonState.Normal);
source
share