PictureBox如何实现AutoRedraw属性

GreatJason 2005-10-31 01:48:04
vb6里面的picture控件有个AutoRedraw属性,当窗体刷新的时候,也会重画picture中的图像。

但是vb.net里面的控件PictureBox就没有这个功能,每次隐藏窗体后画的图像都不见了。

如何解决这个问题?

需要简单的代码示例
...全文
758 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
GreatJason 2005-10-31
  • 打赏
  • 举报
回复
Sub draw()
Dim bmp As New Bitmap(100, 100)
Dim g As Graphics = Graphics.FromImage(bmp)
Dim pen As New Pen(Color.Black, 1)
g.DrawLine(pen, 10, 10, 90, 10)
PictureBox1.Image = bmp
PictureBox1.Refresh()
End Sub

谢了,这个办法好使。

我该怎么给分?是斑竹来给还是我给?
wqdzgh 2005-10-31
  • 打赏
  • 举报
回复

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim bmp As New Bitmap(100, 100)
Dim g As Graphics = Graphics.FromImage(bmp)
Dim pen As New Pen(Color.Black, 1)
g.DrawLine(pen, 10, 10, 90, 10)
PictureBox1.Image = bmp
End Sub
wqdzgh 2005-10-31
  • 打赏
  • 举报
回复
vb.net中不在支持AutoRedraw属性,你需要重写picturebox控件的paint事件,或使用双缓冲技术绘图:先把图形绘制在bitmap对象上,然后用picturebox1.image=bitmap来把图形绘制到picturebox控件上.

Sub draw()
Dim bmp As New Bitmap(100, 100)
Dim g As Graphics = Graphics.FromImage(bmp)
Dim pen As New Pen(Color.Black, 1)
g.DrawLine(pen, 10, 10, 90, 10)
PictureBox1.Image = bmp
PictureBox1.Refresh()
End Sub
pupo 2005-10-31
  • 打赏
  • 举报
回复
将画图代码写到 Paint 事件里面
兔子-顾问 2005-10-31
  • 打赏
  • 举报
回复
代码写到OnPaint事件里。或者呢。OnPaint事件轮训的画一个ArrayList里的shap,用到的地方往ArrayList里追加。这样还可以等于是矢量化的图,可以撤销,HOHO。

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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