使用GDI+绘制一条线段,当我把窗体最小化以后,然后再还原窗体,那个线段怎么就不见了,是怎么回事

sun350771521 2013-03-13 01:49:30
使用GDI+绘制一条线段,当我把窗体最小化以后,然后再还原窗体,那个线段怎么就不见了,是怎么回事
...全文
398 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
豁燃开朗 2013-03-27
  • 打赏
  • 举报
回复
因为你只是画在表面上,需要在OnPaint里重画
lin1232147 2013-03-15
  • 打赏
  • 举报
回复
引用 9 楼 Trent1985 的回复:
引用 6 楼 sun350771521 的回复: 引用 4 楼 Trent1985 的回复:因为你是直接在窗体上绘制的也就是用createGraphics,当最小化后在最大化时,窗体会刷新一下,这时就把你画的线刷没了;你要把绘制程序写到窗体的OnPaint事件里,这样才会持久。 好像onpaint是一个方法吧,只看到paint事件,能具体说说onpaint如何用吗? using System……
你好 我想问个比较低级的问题。但是我真的不懂 你用g.DrawLine(new Pen(Color.Red, 2), new Point(10, 10), new Point(100, 100)); g.DrawLine(new Pen(Color.Red, 2), 10, 10,100, 100)); 也可以吧 你那样的话 对程序来说效率会更快么? 我是菜鸟。最近刚刚开始研究DGI+绘图和图像处理
sun350771521 2013-03-14
  • 打赏
  • 举报
回复
引用 8 楼 Trent1985 的回复:
引用 6 楼 sun350771521 的回复:引用 4 楼 Trent1985 的回复:因为你是直接在窗体上绘制的也就是用createGraphics,当最小化后在最大化时,窗体会刷新一下,这时就把你画的线刷没了;你要把绘制程序写到窗体的OnPaint事件里,这样才会持久。 好像onpaint是一个方法吧,只看到paint事件,能具体说说onpaint如何用吗?就是P……
加入我只想刷新一部分图片怎么办啊
Trent1985 2013-03-14
  • 打赏
  • 举报
回复
引用 6 楼 sun350771521 的回复:
引用 4 楼 Trent1985 的回复:因为你是直接在窗体上绘制的也就是用createGraphics,当最小化后在最大化时,窗体会刷新一下,这时就把你画的线刷没了;你要把绘制程序写到窗体的OnPaint事件里,这样才会持久。 好像onpaint是一个方法吧,只看到paint事件,能具体说说onpaint如何用吗?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication20 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics(); g.DrawLine(new Pen(Color.Red, 2), new Point(10, 10), new Point(100, 100)); g.Dispose(); } } }
Trent1985 2013-03-14
  • 打赏
  • 举报
回复
引用 6 楼 sun350771521 的回复:
引用 4 楼 Trent1985 的回复:因为你是直接在窗体上绘制的也就是用createGraphics,当最小化后在最大化时,窗体会刷新一下,这时就把你画的线刷没了;你要把绘制程序写到窗体的OnPaint事件里,这样才会持久。 好像onpaint是一个方法吧,只看到paint事件,能具体说说onpaint如何用吗?
就是Paint事件,你把画图程序放在里面就行了
Trent1985 2013-03-14
  • 打赏
  • 举报
回复
加入你的窗体为Form1,那么,在窗体的event里找到OnPaint事件,双击进入该事件,在该事件里写你的画线程序就OK了
sun350771521 2013-03-14
  • 打赏
  • 举报
回复
引用 4 楼 Trent1985 的回复:
因为你是直接在窗体上绘制的也就是用createGraphics,当最小化后在最大化时,窗体会刷新一下,这时就把你画的线刷没了;你要把绘制程序写到窗体的OnPaint事件里,这样才会持久。
好像onpaint是一个方法吧,只看到paint事件,能具体说说onpaint如何用吗?
  • 打赏
  • 举报
回复
放onpaint里绘吧。
Trent1985 2013-03-13
  • 打赏
  • 举报
回复
因为你是直接在窗体上绘制的也就是用createGraphics,当最小化后在最大化时,窗体会刷新一下,这时就把你画的线刷没了;你要把绘制程序写到窗体的OnPaint事件里,这样才会持久。
jhdxhj 2013-03-13
  • 打赏
  • 举报
回复
引用 2 楼 hjywyj 的回复:
将绘制一条线的代码写在onpaint里
+1
  • 打赏
  • 举报
回复
将绘制一条线的代码写在onpaint里
yyantifa 2013-03-13
  • 打赏
  • 举报
回复
重写Onpaint

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧