Visual Basic: Load time problem solution. When a Visual Basic application is launched, the mouse cursor is changed to hourglass mode. Unfortunately, the cursor reverts back to the arrow pointer long before the application is loaded. The load time of a VB application is effected by the number of objects which are placed on the designated Startup form and the code associated with the objects. A user may become confused about the state of the application and double click it's icon again causing additional instances of the application to be launched. This problem is far more evident on slower machines. Fortunately, the cause of the problem can be implemented as the solution. Simply create a small "banner" form as the Startup form. This form should contain only two objects; a label with a caption telling the user to wait while the program loads (Label1) and a timer (Timer1). The properties for the form are all defaults except for the following: ControlBox = False; MaxButton = False, MinButton = False; BorderStyle = 0 - None. The Timer is enabled with an interval of 1. For best effect, dimension the form to match the size of Label1. Listed below are the subroutines associated with the banner form. The Form_Load procedure will complete before the Timer1_Timer event is invoked. Sub Form_Load () Screen.MousePointer = 11 ' Hourglass cursor Banner.Left = (Screen.Width - Banner.Width) / 2 ' Center message Left/Right Banner.Top = (Screen.Height - Banner.Height) / 2 ' Center message Top/Bottom End Sub Sub Timer1_Timer () Timer1.Enabled = 0 ' False - Turn off the timer Load MainForm ' Load form with Visible Property set to False MainForm.Visible = -1 ' True - Keep it hidden until the load is complete End Sub In the main form, the only housekeeping that needs to be done to conclude this technic is unloading of the Startup form and resetting the mouse. Sub Form_Load () ..... do miscellaneous housekeeping and setup routines here ..... Unload Banner ' Eliminate user's message Screen.MousePointer = 0 ' set to normal Arrow Pointer End Sub Using these routines will keep the mouse as an hourglass for most of the time required to launch the program. Use Banner.Label1.Caption to provide additional status reports to the user for applications which perform extensive operations prior to releasing control to the user. Use Banner.Label1.Refresh to get the message out promptly. An additional method for improving loading speed is to use the MainForm strictly as the application's menu. Only the code for loading other forms should be placed in the MainForm. Using small, single purpose forms will keep overall coding simpler and more readable.