永发信息网

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

答案:1  悬赏:50  手机版
解决时间 2021-04-02 03:54
用C#Graphics绘图,最小化窗口后消失的问题
最佳答案
你非要重载嘛……

你画一个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:你初学的话,是不是应该从语法啊,类和对象啊什么的开始学啊,不然这个你没法看懂啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
EGF修复原液那个牌子好用?哪里有卖的?
你们知道昆明就西山区一带,那些小区里,新建
与的最小公分母是________.
这篇古诗的意思
出国GPA应该用什么算法(不同算法差很多)
头发多久可从5厘米长到7厘米
首饰(含金银)注册商标属于哪一类?
9个10份之组成的分数是多少
求助,家里来只新猫,老猫老是去欺负新猫
男人这样的卡洛驰(CROCS)穿这样的灰白色好
波音是什么意思
优生优育的燕窝品牌有哪些?
盈满心怀是什么意思
规范上排水管出墙多少为建筑商的
昨天晚上喝醉酒把一个女同学给强上了,怎么办
推荐资讯
怎么区分是用for作原因状语还是with作伴随状
三国夷陵之战,诸葛亮为什么会败在陆逊手上
结婚当天新娘新郎吃汤圆代表什么
游西湖,想起苏轼的什么诗句?山塞中什么诗句表
水果的种类有哪些,常见水果种类
箜篌曲《清明上河图》的简介
CAD里图层为AE-STRU-MATE是什么意思?
我cos谁比较像,在线等。
十三香钓鱼可以吗?
单选题古代有这样一个寓言故事:驴子和骡子一
男人早上会晨勃,女人会晨湿吗???
所谓解脱,是放下不执着,不去躲.有多少
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?