0

これはおそらく恥ずかしい質問ですが、MSDN Web サイトのヘルプを使用して赤い境界線を持つカスタム テキスト ボックスを作成しました。

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));
    }
  }
}
4

0 に答える 0