永发信息网

用C#Graphics绘图,最小化窗口后消失的问题

答案:1  悬赏:50  手机版
解决时间 2021-04-02 03:54
  • 提问者网友:佞臣
  • 2021-04-01 21:49
用C#Graphics绘图,最小化窗口后消失的问题
最佳答案
  • 五星知识达人网友:雾月
  • 2021-04-01 22:22
你非要重载嘛……

你画一个picturebox
Bitmap bm = new Bitmap(300,300);//这个是位图的大小,一会画图的范围就是那么大
Graphics g = Graphics.FromImage(bm);
然后用g来画图
然后g.Save();
然后picturebox.Image = bm;追问你好,小弟刚开始学习C#,菜鸟一个,你能把你的方法说的再详细一点吗?追答你不是在重载(那其实叫重写)中写了

Graphics g = this.CreateGraphics();


定义一个全局变量private Bitmap bm;
把这个换成
bm = new Bitmap(300,300);//这个是位图的大小,一会画图的范围就是那么大
Graphics g = Graphics.FromImage(bm);

然后把我刚才说的过程放到Form_Load事件中就行了追问其实我不理解的就是你刚才说的那个过程追答你说按下一个BUTTON后,画一条直线
你应该是用了Graphics.DrawLine()方法对不对
可是你的Graphics是不是用的是
this.CreateGraphics()

这个是用来在窗体上画图的
最小化后还原时窗体要重绘
所以用了你的OnPaint方法
画出了一条线,另外一条你OnPaint里又没说要画
所以只有一条线

现在把图画在位图上,然后把位图赋给能显示图片的控件上
当然Form.BackGroundImage也可以装载位图(我应该没记错吧……背景图片)
所以就定义一个全局变量
然后
bm = new Bitmap(300,300);
创建了一个300*300的位图
Graphics g = Graphics.FromImage(bm);

这样就能在位图上画图了
然后你Graphics.DrawLine()的时候就相当于在位图上画图
这会就跟窗体重绘没关系了
然后g.Save();就保存了刚才在位图上画的图
然后Form.BackGroundImage = bm;
或者PictureBox.Image = bm;
这就是把位图装到这些能显示图片的控件里了

P.S:你初学的话,是不是应该从语法啊,类和对象啊什么的开始学啊,不然这个你没法看懂啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯