【VB.NET】如何在窗体上画画?

哈里最近在使用vb.net中,遇到很多问题。其中有一个是.net窗体上的绘制问题。
在vb6中,可以很简单的在窗体上画画,通过设置窗体的autoredraw属性还可以保持绘制的图形不会因为窗体超出屏幕边界等情况消失。
那.net里面如何画画能让窗体不消失,并且能用timer时钟控件做出动画一般的效果呢?
例如下面这样:

在这里插入图片描述

我们新建一个项目,在窗体上新建一个picturebox控件,把名字改成pic,autosize属性选为true。
然后新建一个timer控件,enabled属性设置为true。
最后窗体代码如下:

Public Class Form1
    Private x As Single = 100, y As Single = 50, x2 As Single = 300
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Pic.Image = New Bitmap(200, 200) '用空白图片填充pic控件的图片属性,这里是为了在下次timer内函数作画前,图像不会因为各种原因消失
        Dim g As Graphics = Graphics.FromImage(Pic.Image) '将我们作画的画板选用为pic控件图片属性中的那张图片
        g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias '图像抗锯齿
        Dim p As New Pen(Brushes.Gold, 2) '定义p为宽度2的金色笔
        g.DrawEllipse(p, x, y, 100, 100) '在画板上画一个长宽都是100的椭圆(其实就是直径100的圆),椭圆的左上角坐标是(x,y)
        g.DrawEllipse(p, x2, y, 100, 100)
        x -= 1 '每次迭代圆1的横坐标-1
        x2 -= 1 '圆2横坐标-1
        If x <= -200 Then '圆跑到左边看不到的地方了就重置到右边看不到的地方等待出现
            x += 400
        End If
        If x2 <= -200 Then
            x2 += 400
        End If
        '下面四条线画出一个正方形方框
        g.DrawLine(Pens.Red, 0, 0, 199, 0) '用红色的笔在画板上画一条从坐标0,0到坐标199,0的直线
        g.DrawLine(Pens.Red, 199, 0, 199, 199)
        g.DrawLine(Pens.Red, 199, 199, 0, 199)
        g.DrawLine(Pens.Red, 0, 199, 0, 0)
        Me.Refresh() '刷新窗体使我们的画板内容绘制到显示器上
    End Sub
End Class

以上。

欢迎补充及指正~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值