自定义TextBox控件关于OnPaint方法

时间:2013-08-21 09:56:11

标签: c# winforms custom-controls

这可能是一个令人尴尬的问题,但我已经使用MSDN网站的帮助创建了一个带有红色边框的自定义文本框。

我知道我继承了UserControl类并重写了它的OnPaint()方法。

有人可以告诉我OnPaint()方法的调用位置,因为我在代码中看不到它。

这是代码 -

namespace CustomTextBox
{
  public partial class BorderTextBox : UserControl
  {
    private TextBox textBox;
    private Color myColor = Color.Red;
    public BorderTextBox()
    {
      InitializeComponent();
      this.textBox = new TextBox();
      this.DoubleBuffered = true;
      this.Padding = new Padding(2);
      this.textBox.BorderStyle = BorderStyle.None;
      this.textBox.Dock = DockStyle.Fill;
      this.Controls.Add(this.textBox);
    }

    protected override void OnPaint(PaintEventArgs e)
    {
      base.OnPaint(e);
      Pen borderPen = new Pen(myColor);
      e.Graphics.DrawRectangle(borderPen,
          new Rectangle(0, 0, this.ClientSize.Width - 1, this.ClientSize.Height - 1));
    }
  }
}

0 个答案:

没有答案