VB.Net Tutorial/GUI Applications/Applications
Applications.DoEvents
<source lang="vbnet">Imports System.Windows.Forms public class ApplicationDoEvent
public Shared Sub Main Application.Run(New Form1) End Sub
End class Public Class Form1
Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click Me.Cursor = Cursors.WaitCursor tmrLongTask.Enabled = True btnGo.Enabled = False Application.DoEvents() End Sub Private Sub tmrLongTask_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrLongTask.Tick tmrLongTask.Enabled = False Me.Cursor = Cursors.Default btnGo.Enabled = True End Sub
End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public Class Form1
Inherits System.Windows.Forms.Form "Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.ruponents = New System.ruponentModel.Container Me.btnGo = New System.Windows.Forms.Button Me.tmrLongTask = New System.Windows.Forms.Timer(Me.ruponents) Me.SuspendLayout() " "btnGo " Me.btnGo.Location = New System.Drawing.Point(16, 16) Me.btnGo.Name = "btnGo" Me.btnGo.Size = New System.Drawing.Size(48, 23) Me.btnGo.TabIndex = 0 Me.btnGo.Text = "Go" " "tmrLongTask " Me.tmrLongTask.Interval = 3000 " "Form1 " Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(Me.btnGo) Me.Name = "Form1" Me.Text = "UseWaitCursor" Me.ResumeLayout(False) End Sub Friend WithEvents btnGo As System.Windows.Forms.Button Friend WithEvents tmrLongTask As System.Windows.Forms.Timer
End Class</source>
ProgressBars and Application.DoEvents
<source lang="vbnet">Option Strict On imports System imports System.Drawing imports System.Windows.Forms public class ProgressBars : inherits Form
dim pb as ProgressBar dim lbl as Label public sub New() Size = new Size(300,200) dim btn as new Button() btn.Parent = me btn.Text = "&Start" btn.Location = new Point(0,0) AddHandler btn.Click, AddressOf btn_OnClick lbl = new Label() lbl.Parent = me lbl.Size = new Size(100,23) lbl.Location = new Point(0,25) lbl.BorderStyle = BorderStyle.FixedSingle lbl.TextAlign = ContentAlignment.MiddleCenter lbl.Text = "" pb = new ProgressBar() pb.Parent = me pb.Location = new Point(0, 70) pb.Size = new Size(400, 20) pb.Minimum = 0 " the default value pb.Maximum = 100 " the default value end sub " close for constructor private sub btn_OnClick(ByVal sender as object,ByVal e as EventArgs) dim cntr as integer = 0 pb.Value = 0 pb.Step = 1 for i as integer = 0 to 100000 cntr = cntr + 1 if cntr mod 100 = 0 then lbl.Text = cntr.ToString() pb.PerformStep() Application.DoEvents() System.Threading.Thread.Sleep(40) end if next end sub public shared sub Main() Application.Run(new ProgressBars()) end sub
end class</source>