GDI+绘图,为什么Form1_Paint(object sender,PaintEventArgs e)事件没有执行?

youaway 2011-10-19 03:27:22
代码如下:
  public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Paint+=new PaintEventHandler(Form1_Paint);
}
protected override void OnPaint(PaintEventArgs e)
{
//Graphics g = e.Graphics;
//g.DrawEllipse(new Pen(Color.Red, 50), new Rectangle(100, 200, 48, 20));
//g.DrawString("Test !",new Font("Courier New",40f,FontStyle.Italic),new HatchBrush(HatchStyle.Cross,Color.Teal),new Point(10,16));
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
//g.DrawEllipse(new Pen(Color.Red, 50), new Rectangle(100, 200, 48, 20));
g.DrawString("Test !",new Font("Courier New",40f,FontStyle.Italic),new HatchBrush(HatchStyle.Cross,Color.Teal),new Point(10,16));
}
}


当写在Onpaint中时,可以实现。但是写到Form1_Paint中,貌似,该事件不执行,断点试过了。求解惑.
分不多,见谅。
...全文
263 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
private void Form1_Paint(object sender, PaintEventArgs e)
{
Base.OnPaint(e);//这样试试
Graphics g = this.CreateGraphics();
//g.DrawEllipse(new Pen(Color.Red, 50), new Rectangle(100, 200, 48, 20));
g.DrawString("Test !",new Font("Courier New",40f,FontStyle.Italic),new HatchBrush(HatchStyle.Cross,Color.Teal),new Point(10,16));
}
youaway 2011-10-19
  • 打赏
  • 举报
回复
果然,3Q。大意了。
神棍 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hhddzz 的回复:]

OnPaint没有调用基类同名方法导致最终Control.OnPaint没有被调用
事件处理器的调用是在Control.OnPaint里处理的
[/Quote]
应该是这样.
hhddzz 2011-10-19
  • 打赏
  • 举报
回复
OnPaint没有调用基类同名方法导致最终Control.OnPaint没有被调用
事件处理器的调用是在Control.OnPaint里处理的
淡默 2011-10-19
  • 打赏
  • 举报
回复
把重写方法注释掉试试看、可能是由于你 += 了paint、但是又override了paint、结果是重写的内容、因为你现在重写方法里是空的、所以什么都没有

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧