Long Operation with Timer and Wait Cursor
Imports System Imports System.Runtime.InteropServices Imports System.Drawing Imports System.ComponentModel Imports System.Windows.Forms Imports System.IO Public Class MainClass Shared Sub Main(ByVal args As String()) Dim myform As New Form1() Application.Run(myform) 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 ' refresh everything. 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.CompilerServices.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.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. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Me.btnGo = New System.Windows.Forms.Button Me.tmrLongTask = New System.Windows.Forms.Timer(Me.components) Me.SuspendLayout() ' 'btnGo ' Me.btnGo.Location = New System.Drawing.Point(16, 16) Me.btnGo.Name = "btnGo" Me.btnGo.Size = New System.Drawing.Size(180, 23) Me.btnGo.TabIndex = 0 Me.btnGo.Text = "Start Waiting for 3 Seconds" ' '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
1. | Timer: by tenth second, second and ten seconds |