private void Form1_Load(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
Pen pen1 = new Pen(Color.Red, 5);
g.DrawRectangle(pen1,10,10,30,50);
}为什么矩形没画出来呢
{
Graphics g = this.CreateGraphics();
Pen pen1 = new Pen(Color.Red, 5);
g.DrawRectangle(pen1,10,10,30,50);
}为什么矩形没画出来呢
不正确。窗体弹出之前,你的窗体初始化已经完成,窗体已经被分配了句柄,所以是可以产生绘图对象的。但是弹出后没有图像,是因为弹出触发了窗体重绘,也就是Paint事件,由于没有重写OnPaint,导致本次绘图直接中止,所以你的窗体没有图像产生。
绘画资源。所以不可以画出。但如果在窗体已经创建并显示完了之后,如果你再调用FormLoad事件,这时一定可以画出。如果想让窗体在和其他窗体交互后,还能画出,则建议使用Paint事件。
Good Luck!
13L是错误的,如果有疑问,就在Form_Load里创建一个Graphics对象试试,然后在OnPaint中加断点,这样就可以看出事件的具体执行顺序。
然后Patint事件会一直执行,绘制你的窗体,但Patint事件里面没有画那个矩形,所以就没有了
请参考下面两个帖子:
http://topic.csdn.net/u/20110425/16/0c4d8ae9-62d7-4a8d-bcb3-824bb39351a5.html
http://topic.csdn.net/u/20110425/17/bec41b66-8a3e-465e-9c72-b03feedf1172.html