'Visual Basic.Net JingCai Programming 100 Examples
'Author: Yong Zhang
'Publisher: Water Publisher China
'ISBN: 750841156
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms
public class Snow
public Shared Sub Main
Application.Run(New Form1)
End Sub
End class
Public Class Form1
Inherits System.Windows.Forms.Form
Public Sub New()
MyBase.New()
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
Private components As System.ComponentModel.IContainer
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Friend WithEvents Timer1 As System.Windows.Forms.Timer
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Me.PictureBox1 = New System.Windows.Forms.PictureBox
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.SuspendLayout()
'
'PictureBox1
'
Me.PictureBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.PictureBox1.Location = New System.Drawing.Point(0, 0)
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(292, 266)
Me.PictureBox1.TabIndex = 0
Me.PictureBox1.TabStop = False
'
'Timer1
'
Me.Timer1.Enabled = True
Me.Timer1.Interval = 10
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(Me.PictureBox1)
Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
Me.ResumeLayout(False)
End Sub
Dim number, x(), y(), v(), s() As Integer
Dim t As Random = New Random
Dim g As System.Drawing.Graphics
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox1.Location = Me.Location
PictureBox1.Size = Me.Size
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
snow()
End Sub
Private Sub snow()
number = 2000
ReDim x(number - 1)
ReDim y(number - 1)
ReDim v(number - 1)
ReDim s(number - 1)
Dim i As Integer
For i = 0 To number - 1
Insnow(i)
Next
End Sub
Private Sub Insnow(ByVal i As Integer)
x(i) = t.Next(0, Me.Width - 1)
y(i) = t.Next(0, Me.Height * 5 / 7)
v(i) = t.Next(5, 20)
s(i) = (t.Next(1, 3) * 100 + t.Next(50, 200)) / 100
End Sub
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
g = PictureBox1.CreateGraphics
Dim i As Integer
For i = 0 To number - 1
g.FillEllipse(Brushes.White, x(i), y(i), s(i), s(i))
Next
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim i As Integer
For i = 0 To number - 1
y(i) = y(i) + v(i)
If y(i) >= Me.Height Then
Insnow(i)
End If
Next
PictureBox1.Invalidate()
End Sub
End Class