private void DrawButton(Graphics g, ref Rectangle rc, ButtonState state)
{
    ControlPaint.DrawButton(g, rc, state);
    g.DrawString(state.ToString(), Font, Brushes.Black,
    rc.Width + 5, rc.Y + (rc.Height - Font.Height) / 2);
    rc.Offset(0, rc.Height + 5);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
    Rectangle rc = new Rectangle(0, 0, 50, 25);
    DrawButton(e.Graphics, ref rc, ButtonState.All);
    DrawButton(e.Graphics, ref rc, ButtonState.Checked);
    DrawButton(e.Graphics, ref rc, ButtonState.Flat);
    DrawButton(e.Graphics, ref rc, ButtonState.Inactive);
    DrawButton(e.Graphics, ref rc, ButtonState.Normal);
    DrawButton(e.Graphics, ref rc, ButtonState.Pushed);
}
منبع : http://www.amazon.com/GDI-Custom-Con.../dp/1904811604