title: How to add a border to a custom control in the design view?
body: <p>Transparent images are pure evil in Windows Forms, that why I've created a custom control class to handle them. The designer doesn't show my control when it's empty. I would like to add a subtle border, but only in the design view (and when no border is added by the user). How would I do this?</p>
  
  <p>My class is:</p>
  
  <pre><code>class TransparentImage : Control
  {
      public Image Image { get; set; }
  
      protected Graphics graphics;
  
      public string FilePath { get; set; }
  
      protected override CreateParams CreateParams
      {
          get
          {
              CreateParams cp = base.CreateParams;
              cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT
  
              return cp;
          }
      }
  
      protected override void OnPaintBackground(PaintEventArgs pevent)
      {
          // Don't paint background
      }
  
      protected override void OnPaint(PaintEventArgs e)
      {
          // Update the private member so we can use it in the OnDraw method
          this.graphics = e.Graphics;
  
          // Set the best settings possible (quality-wise)
          this.graphics.TextRenderingHint =
              System.Drawing.Text.TextRenderingHint.AntiAlias;
          this.graphics.InterpolationMode =
              System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
          this.graphics.PixelOffsetMode =
              System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
          this.graphics.SmoothingMode =
              System.Drawing.Drawing2D.SmoothingMode.HighQuality;
  
          if (Image != null)
          {
              // Sets the images' sizes and positions
              var width = Image.Size.Width;
              var height = Image.Size.Height;
              var size = new Rectangle(0, 0, width, height);
  
              // Draws the two images
              this.graphics.DrawImage(Image, size);
          }
      }
  }
  </code></pre>