当前位置: 首页 > article >正文

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

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

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

Public Class Form1
    Private Shared bmp As Bitmap

    Private 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 Sub

    Private 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 Using
    End Sub

    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
        ' 从位图中绘制
        Debug.Print("drawimg--Form2_Paint")
        e.Graphics.DrawImage(bmp, 0, 0)
    End Sub

    Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize
        If Not bmp Is Nothing Then
            Debug.Print("drawimg--Form2_Resize")
            'Me.CreateGraphics.DrawImage(bmp, 0, 0)

            bmp = New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)
            DrawOnBitmap(bmp)
            ' 立即重绘窗体
            Me.Invalidate()
        End If


    End Sub
End Class


http://www.kler.cn/news/357047.html

相关文章:

  • 2.5 windows xp,ReactOS系统快速系统调用的实现
  • 【Linux】冯诺依曼体系结构 OS的概念
  • 图论|图的构造、图的遍历方式、DFS98. 所有可达路径;海岛数量 岛屿最大面积 101. 孤岛的总面积
  • 引进Menu菜单与新增验证上传图片功能--系统篇
  • 编写一个通用的i2c控制器驱动框架
  • Xcode使用Instruments的dsym还原符号堆栈问题
  • 智慧农业案例 (三)- 蔬菜智能温室
  • 高级Sql 技巧
  • Qt优秀开源项目之二十四:EXCEL读写利器QXlsx
  • 电脑端百度网页两个好用的功能
  • 百亿数据量下的多表查询优化策略
  • Android上的AES加密
  • 数据结构 - 树,再探
  • Python 遍历(Python Traversal)
  • STM32应用开发——BH1750光照传感器详解
  • Lucas带你手撕机器学习——线性回归
  • 记录Visio导出图片的文字与latex中文字大小一致的问题,和visio导出适用于论文的高清图片问题
  • Java项目-基于Springboot的应急救援物资管理系统项目(源码+说明).zip
  • 虾​皮​一​面​-​2
  • 数学归纳法——第一数学归纳法、第二数学归纳法步骤和示例