public partial class Form1 : Form
{
Rectangle rete;
Graphics g;
Pen p;
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
g = e.Graphics;
p = new Pen(Color.Green);
rete = new Rectangle(66, 222, 200, 66);
g.DrawRectangle(p, rete);
}
private void button1_Click(object sender, EventArgs e)
{
//g = this.CreateGraphics();
g.Clear(Color.White);
g.DrawRectangle(p, rete);
}
}
为什么我在button_Click 里面用g会有ArgumentException 错误?
我知道先调用this.CreateGraphics(); 就没问题了。
我就想问问那样写为什么会报错?对象一般都是可以那样用的啊
不清楚这个代码到底要干什么
因为g没创建三,一个没有创建的graphics对象就拿来用肯定出错啊。
同学,非实时渲染类的视图往往都是用重绘的,也就不是你这么写的,你不信试试隐藏一下窗口,这个是在OnPaint里面写。
实时的就不多讲了,你可以试试用dx写个简单游戏。
我在form的OnPaint 里写的g = e.Graphics 不算创建g吗?
那我要实现点击按钮,重新画图 要怎么写?
@左眼水星: 自己动动脑想想。提示:通常控制不管绘制,绘制是绘制,控制是控制。