这可能是一个令人尴尬的问题,但我已经使用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));
}
}
}