首页 新闻 会员 周边

Graphics 问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2017-09-20 08:51

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();  就没问题了。

我就想问问那样写为什么会报错?对象一般都是可以那样用的啊

左眼水星的主页 左眼水星 | 初学一级 | 园豆:113
提问于:2017-09-06 10:48
< >
分享
所有回答(2)
0

不清楚这个代码到底要干什么

jqw2009 | 园豆:2439 (老鸟四级) | 2017-09-06 11:14
0

因为g没创建三,一个没有创建的graphics对象就拿来用肯定出错啊。

同学,非实时渲染类的视图往往都是用重绘的,也就不是你这么写的,你不信试试隐藏一下窗口,这个是在OnPaint里面写。

实时的就不多讲了,你可以试试用dx写个简单游戏。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-09-06 11:48

我在form的OnPaint 里写的g = e.Graphics 不算创建g吗?

那我要实现点击按钮,重新画图 要怎么写?

支持(0) 反对(0) 左眼水星 | 园豆:113 (初学一级) | 2017-09-06 12:25

@左眼水星: 自己动动脑想想。提示:通常控制不管绘制,绘制是绘制,控制是控制。

支持(0) 反对(0) 花飘水流兮 | 园豆:13560 (专家六级) | 2017-09-06 12:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册