⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.vb

📁 编程之道VB.NETt程序设计入门-589M.zip
💻 VB
字号:
Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        '在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    '窗体重写处置以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意:以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    Friend WithEvents tmrAnimation As System.Windows.Forms.Timer
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container()
        Me.tmrAnimation = New System.Windows.Forms.Timer(Me.components)
        '
        'tmrAnimation
        '
        Me.tmrAnimation.Enabled = True
        Me.tmrAnimation.Interval = 20
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(352, 266)
        Me.Name = "Form1"
        Me.Text = "Form1"

    End Sub

#End Region

    '用来“装”球的位图
    Dim bitmap As bitmap
    'x, y记载位图的位置,r代表球的半径
    Dim x, y, r As Integer
    'offsetX和offsetY分别表示球每次沿x轴和y轴移动的距离
    Dim offsetX, offsetY As Integer
    '位图的宽和高
    Dim bitmapWidth, bitmapHeight As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '初始化变量
        r = 20
        x = 1
        y = 1
        offsetX = 5
        offsetY = 5
        '位图必须足够大,不仅能容纳球本身,还能遮住上一个循环中位图留下的痕迹
        bitmapWidth = 2 * r + 2 * offsetX
        bitmapHeight = 2 * r + 2 * offsetY

        '在位图中间画一个球
        bitmap = New Bitmap(bitmapWidth, bitmapHeight)
        Dim g As Graphics
        g = Graphics.FromImage(bitmap)
        With g
            .Clear(BackColor)
            .FillEllipse(Brushes.Red, New Rectangle(0, 0, 2 * r, 2 * r))
            .Dispose()
        End With

    End Sub

    Private Sub tmrAnimation_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrAnimation.Tick
        Dim g As Graphics = CreateGraphics()
        '在恰当的位置画出位图(球)
        g.DrawImage(bitmap, _
            x, y, bitmapWidth, bitmapHeight)

        g.Dispose()

        '如果球碰到了窗体的边界,则令其反弹
        If x + bitmapWidth >= ClientSize.Width Or x <= 0 Then
            offsetX = -offsetX
        End If

        If y + bitmapHeight >= ClientSize.Height Or y <= 0 Then
            offsetY = -offsetY
        End If

        '改变球的位置,以产生运动
        x += offsetX
        y += offsetY
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -