欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > VB.NET 让窗体绘图持久化,类似VB6 ME.AutoRedraw=True

VB.NET 让窗体绘图持久化,类似VB6 ME.AutoRedraw=True

2024/10/23 23:05:19 来源:https://blog.csdn.net/xiaoyao961/article/details/143086445  浏览:    关键词:VB.NET 让窗体绘图持久化,类似VB6 ME.AutoRedraw=True

'BY AI: VB.NET 让窗体绘图持久化
'在VB.NET中, 要让窗体绘图持久化, 可以在窗体的Paint事件处理程序中将绘制的内容保存到一个位图(Bitmap)中, 然后在Load事件或者每次需要重绘时, 从位图中绘制。

'以下是一个简单的示例:
'在这个例子中, Form1_Load 事件中创建了一个新的位图, 并且用 DrawOnBitmap 方法在位图上进行了绘制。Form1_Paint 事件中则将这个位图绘制到窗体上。这样, 每次窗体需要重绘时, 它会从位图中读取先前保存的绘图状态。'如果你需要在窗体大小改变时持久化绘图, 可以在 Resize 事件中调整位图大小并重新绘制, 这样, 每当用户调整窗体大小时, 绘图状态都会被更新, 并且保持不变。
 

Public Class Form1Private Shared bmp As BitmapPrivate Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load' 创建一个与窗体大小相同的位图bmp = New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)' 使用指定的Graphics对象绘制位图DrawOnBitmap(bmp)' 立即重绘窗体Me.Invalidate()Me.Text = "VB.NET 让窗体绘图持久化"End SubPrivate Sub DrawOnBitmap(bmp As Bitmap)' 使用GDI+绘制位图Using g As Graphics = Graphics.FromImage(bmp)g.Clear(Color.White) ' 清除位图背景,使用窗体的背景颜色' 绘制内容,例如一条蓝色线g.DrawLine(Pens.Blue, 0, 0, bmp.Width, bmp.Height)End UsingEnd SubPrivate Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint' 从位图中绘制Debug.Print("drawimg--Form2_Paint")e.Graphics.DrawImage(bmp, 0, 0)End SubPrivate Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.ResizeIf Not bmp Is Nothing ThenDebug.Print("drawimg--Form2_Resize")'Me.CreateGraphics.DrawImage(bmp, 0, 0)bmp = New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)DrawOnBitmap(bmp)' 立即重绘窗体Me.Invalidate()End IfEnd Sub
End Class

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com