这几天有个项目从VB6转到了VB.NET,遇到了一个图片框绘图的问题.
在VB6里,只要将图片框的AutoRedraw设置为True,那么再在图片框上绘图时,这就是一个持久图象,在图象被遮挡后系统会自动重绘,省事.
而VB.NET里的图片框却没发现有这个属性....于是上网搜索,找到了一个方案,经测试可用,代码如下:
Public Class Form1 Dim bgimage As Bitmap '将这个位图对象关联到图片框的Image属性 Dim bggriphic As Graphics '以后绘图时,只需要在这个位图对象上绘制即可,图片框会自动重绘的
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load bgimage = New Bitmap(PictureBox1.Width, PictureBox1.Height) '创建相同大小的内存位图 bggriphic = Graphics.FromImage(bgimage)
PictureBox1.Image = bgimage '让Image属性为这个内存位图 End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click Dim I As Integer, X1 As Integer, X2 As Integer, Y1 As Integer, Y2 As Integer
For I = 1 To 100000 '绘制10万条随机线段 X1 = Int(Rnd() * 784) X2 = Int(Rnd() * 784) Y1 = Int(Rnd() * 482) Y2 = Int(Rnd() * 482) bggriphic.DrawLine(Pens.Red, X1, Y1, X2, Y2) Next
PictureBox1.Refresh() End Sub End Class
|
阅读(3053) | 评论(0) | 转发(0) |