小编ger*_*ard的帖子

文本框自定义onPaint

我正在尝试为我的文本框创建一个自定义onPaint,它正在工作...... 它正在工作但是当我尝试输入内容时,文本框正在文本框上方呈现.

这是我的构造函数:

public TextBox()
{
  Font = new Font("Segoe UI", 11F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(0)));
  BackColor = Color.White;
  BorderColor = Color.Gray;
  BorderStyle = BorderStyle.None;
  SetStyle(ControlStyles.UserPaint, true);
}
Run Code Online (Sandbox Code Playgroud)

和onPaint:

protected override void OnPaint(PaintEventArgs e)
{
  Graphics g = e.Graphics;
  g.FillRectangle(backgroundBrush, 0, 0, this.Width, this.Height);

  SizeF fontSize = g.MeasureString(Text, Font);
  g.DrawString(Text, Font, new SolidBrush(ForeColor), new PointF(5, 5), cFormat);

  g.DrawRectangle(borderPen, borderPen.Width / 2, borderPen.Width / 2,
                  this.Width - borderPen.Width, this.Height - borderPen.Width);
}
Run Code Online (Sandbox Code Playgroud)

c# winforms

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

winforms ×1