Appendix R
The Application Class
The Application class provides static properties and methods for controlling the application. This appendix contains a summary of the Application class’s most useful properties, methods, and events. Chapter 28, “Configuration and Resources,” has a bit more to say about the Application class and provides some example code.
The following table describes the Application class’s most useful properties.
PROPERTY | PURPOSE |
CommonAppDataPath | Returns the path where the program should store application data that is shared by all users. By default, this path has the form base_pathcompany_nameproduct_nameproduct_version. The base_path is typically C:Documents and SettingsAll UsersApplication Data. |
CommonAppDataRegistry | Returns the registry key where the program should store application data that is shared by all users. By default, this path has the form HKEY_LOCAL_MACHINESoftwarecompany_nameproduct_nameproduct_version. |
CompanyName | Returns the application’s company name. |
CurrentCulture | Gets or sets the CultureInfo object for this thread. The CultureInfo object specifies information about a specific culture (such as its name, writing system, and calendar, and its formats for dates, times, and numbers). |
CurrentInputLanguage | Gets or sets the InputLanguage for this thread. The InputLanguage object defines the layout of the keyboard for the culture. It determines how the keyboard keys are mapped to the characters in the culture’s language. |
ExecutablePath | Returns the fully qualified path to the file that started the execution, including the file’s name. |
LocalUserAppDataPath | Returns the path where the program should store data for this local, non-roaming user. By default, this path has the form base_pathcompany_nameproduct_nameproduct_version. The base_path is typically C:Documents and Settingsuser_nameLocal SettingsApplication Data. |
MessageLoop | Returns True if the thread has a message loop. If the program begins with a startup form, this loop is created automatically. If it starts with a custom Sub Main, then the loop doesn’t initially exist, and the program must start it (if it needs a message loop) by calling Application.Run. |
OpenForms | Returns a collection holding references to all of the application’s open forms. |
ProductName | Returns the application’s product name. |
ProductVersion | Gets the product version associated with this application. |
StartupPath | Returns the fully qualified path to the file that started the execution, including the file’s name. |
UserAppDataPath | Returns the path where the program should store data for this user. By default, this path has the form base_pathcompany_nameprod uct_nameproduct_version. The base_path is typically C:Documents and Settingsuser_nameApplication Data. |
UserAppDataRegistry | Returns the registry key where the program should store application data for this user. By default, this path has the form HKEY_CURRENT_USERSoftwarecompany_nameproduct_nameproduct_version. |
UseWaitCursor | Determines whether this thread’s forms display a wait cursor. Set this to True before performing a long operation, and set it to False when the operation is finished. |
The following table describes the Application class’s most useful methods.
METHOD | PURPOSE |
AddMessageFilter | Adds a message filter to monitor the event loop’s Windows messages. |
DoEvents | Processes Windows messages that are currently in the message queue. If the thread is performing a long calculation, it would normally prevent the rest of the thread from taking action (such as processing these messages). Calling DoEvents lets the user interface catch up with the user’s actions. Note that you can often avoid the need for DoEvents if you perform the long task on a separate thread. |
Exit | Ends the whole application. This is a rather abrupt halt, and any loaded forms do not execute their FormClosing or FormClosed event handlers, so be sure the application has executed any necessary clean-up code before calling Application.Exit. |
ExitThread | Ends the current thread. This is a rather abrupt halt, and any forms on the thread do not execute their FormClosing or FormClosed event handlers. |
OnThreadException | Raises the Application object’s ThreadException event, passing it an exception. (If your application throws an uncaught exception in the IDE, the IDE halts. That makes it hard to test Application.ThreadException event handlers. You can call OnThreadException to invoke the event handler.) |
RemoveMessageFilter | Removes a message filter. |
Run | Runs a message loop for the current thread. If you pass this method a form object, it displays the form and processes its messages until the form closes. |
SetSuspendState | Makes the system suspend operation or hibernate. When the system hibernates, it writes its memory contents to disk. When you restart the system, it resumes with its previous desktop and applications running. When the system suspends operation, it enters low-power mode. It can resume more quickly than a hibernated system, but memory contents are not saved, so they will be lost if the computer loses power. |
The following table describes the Application object’s events.
EVENT | PURPOSE |
ApplicationExit | Occurs when the application is about to shut down. |
Idle | Occurs when the application finishes executing some code and is about to enter an idle state to wait for events. |
ThreadException | Occurs when the application throws an unhandled exception. |
ThreadExit | Occurs when a thread is about to exit. |
18.221.136.142