' RandomCircles Example ' Draw random circles in the Paint event handler of ' a picture box. The circles are not redrawn until ' the Draw Circles menu item is clicked. Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. 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 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Friend WithEvents picDisplay As System.Windows.Forms.PictureBox Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu Friend WithEvents mnuBrushes As System.Windows.Forms.MenuItem Friend WithEvents mnuMaxRad As System.Windows.Forms.MenuItem Friend WithEvents mnuMaxRad50 As System.Windows.Forms.MenuItem Friend WithEvents mnuMaxRad100 As System.Windows.Forms.MenuItem Friend WithEvents mnuMaxRad200 As System.Windows.Forms.MenuItem Friend WithEvents mnuPlot As System.Windows.Forms.MenuItem Friend WithEvents mnuNumCircles200 As System.Windows.Forms.MenuItem Friend WithEvents mnuNumCircles500 As System.Windows.Forms.MenuItem Friend WithEvents mnuNumCircles1000 As System.Windows.Forms.MenuItem Private Sub InitializeComponent() Me.picDisplay = New System.Windows.Forms.PictureBox Me.MainMenu1 = New System.Windows.Forms.MainMenu Me.mnuBrushes = New System.Windows.Forms.MenuItem Me.mnuNumCircles200 = New System.Windows.Forms.MenuItem Me.mnuNumCircles500 = New System.Windows.Forms.MenuItem Me.mnuNumCircles1000 = New System.Windows.Forms.MenuItem Me.mnuMaxRad = New System.Windows.Forms.MenuItem Me.mnuMaxRad50 = New System.Windows.Forms.MenuItem Me.mnuMaxRad100 = New System.Windows.Forms.MenuItem Me.mnuMaxRad200 = New System.Windows.Forms.MenuItem Me.mnuPlot = New System.Windows.Forms.MenuItem Me.SuspendLayout() ' 'picDisplay ' Me.picDisplay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.picDisplay.Location = New System.Drawing.Point(192, 88) Me.picDisplay.Name = "picDisplay" Me.picDisplay.Size = New System.Drawing.Size(80, 64) Me.picDisplay.TabIndex = 0 Me.picDisplay.TabStop = False ' 'MainMenu1 ' Me.MainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuBrushes, Me.mnuMaxRad, Me.mnuPlot}) ' 'mnuBrushes ' Me.mnuBrushes.Index = 0 Me.mnuBrushes.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuNumCircles200, Me.mnuNumCircles500, Me.mnuNumCircles1000}) Me.mnuBrushes.Text = "Number of Circles" ' 'mnuNumCircles200 ' Me.mnuNumCircles200.Index = 0 Me.mnuNumCircles200.Text = "200" ' 'mnuNumCircles500 ' Me.mnuNumCircles500.Index = 1 Me.mnuNumCircles500.Text = "500" ' 'mnuNumCircles1000 ' Me.mnuNumCircles1000.Index = 2 Me.mnuNumCircles1000.Text = "1000" ' 'mnuMaxRad ' Me.mnuMaxRad.Index = 1 Me.mnuMaxRad.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuMaxRad50, Me.mnuMaxRad100, Me.mnuMaxRad200}) Me.mnuMaxRad.Text = "Max Radius" ' 'mnuMaxRad50 ' Me.mnuMaxRad50.Index = 0 Me.mnuMaxRad50.Text = "50" ' 'mnuMaxRad100 ' Me.mnuMaxRad100.Index = 1 Me.mnuMaxRad100.Text = "100" ' 'mnuMaxRad200 ' Me.mnuMaxRad200.Index = 2 Me.mnuMaxRad200.Text = "200" ' 'mnuPlot ' Me.mnuPlot.Index = 2 Me.mnuPlot.Text = "Plot Circles" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(328, 266) Me.Controls.Add(Me.picDisplay) Me.Menu = Me.MainMenu1 Me.Name = "Form1" Me.Text = "RandomPoints Example" Me.ResumeLayout(False) End Sub #End Region Dim nCircles As Integer = 200 Dim maxRadius As Integer = 50 Private Sub ResizePictureBox() picDisplay.Location = New Point(0, 0) picDisplay.Size = Me.ClientSize End Sub Private Sub ResizePictureBox(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load, MyBase.Resize ResizePictureBox() End Sub Private Sub Form1_Resize(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Resize ResizePictureBox() End Sub Private Sub picDisplay_Paint(ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) Handles picDisplay.Paint Dim g As Graphics = e.Graphics Dim r As New Random Dim c, i, x, y, rad, red, green, blue As Integer Dim w As Integer = picDisplay.Width Dim h As Integer = picDisplay.Height Dim blackPen As New Pen(Color.Black) For i = 1 To nCircles x = r.Next(0, w) y = r.Next(0, h) rad = r.Next(2, maxRadius) red = r.Next(0, 256) green = r.Next(0, 256) blue = r.Next(0, 256) Dim b As New SolidBrush(Color.FromArgb(red, green, blue)) g.FillEllipse(b, x, y, rad, rad) g.DrawEllipse(blackPen, x, y, rad, rad) b.Dispose() Next blackPen.Dispose() End Sub Private Sub mnuNumCircles50_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuNumCircles200.Click nCircles = 200 End Sub Private Sub mnuNumCircles100_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuNumCircles500.Click nCircles = 500 End Sub Private Sub mnuNumCircles200_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuNumCircles1000.Click nCircles = 1000 End Sub Private Sub mnuMaxRad50_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuMaxRad50.Click maxRadius = 50 End Sub Private Sub mnuMaxRad100_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuMaxRad100.Click maxRadius = 100 End Sub Private Sub mnuMaxRad200_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuMaxRad200.Click maxRadius = 200 End Sub Private Sub mnuPlot_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnuPlot.Click picDisplay.Invalidate() End Sub End Class