栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

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

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【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

以上。

欢迎补充及指正~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923116.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号