哈里最近在使用vb.net中,遇到很多问题。其中有一个是.net窗体上的绘制问题。 在vb6中,可以很简单的在窗体上画画,通过设置窗体的autoredraw属性还可以保持绘制的图形不会因为窗体超出屏幕边界等情况消失。 那.net里面如何画画能让窗体不消失,并且能用timer时钟控件做出动画一般的效果呢? 例如下面这样:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820125344356.gif)
我们新建一个项目,在窗体上新建一个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 |