title: Custom Winforms Controls (a button specifically)
body: <p>I'm trying to create a custom button where the foreColor is always crimson and the backColor is always cyan. Ugly color scheme, but I'm just trying to get it so I can create large amounts of controls with a consistent color scheme without setting each control individually. Here's how I coded the button:</p>
  
  <pre><code>public partial class CustomButton : Button
  {
      private static Color _defaultForeColor = Color.Crimson;
      private static Color _defaultBackColor = Color.Cyan;
  
      public CustomButton()
      {
          InitializeComponent();
          base.ForeColor = _defaultForeColor;
          base.BackColor = _defaultBackColor;
      }
  
  
      public AutoScaleMode AutoScaleMode { get; set; }
  
      [DefaultValue(typeof(Color), "Crimson")]
      override public Color ForeColor
      {
          get { return base.ForeColor; }
          set
          {
              base.ForeColor = _defaultForeColor;
          }
      }
  
      [DefaultValue(typeof(Color), "Cyan")]
      public override Color BackColor
      {
          get { return base.BackColor; }
          set
          {
              base.BackColor = _defaultBackColor;
          }
      }        
  }
  </code></pre>
  
  <p>When I drop the custom button onto my form, the background is the regular button color and the text is crimson. If I run the app it's the same also. Now if I try to modify the forecolor or backcolor in the properties window they go right back to their defaults that I set (crimson, cyan) and then they also show up that way when I run my app. How do I get the controls to show up correctly in the designer and at run time?</p>