如何在应用程序启动时执行操作
在打开主应用程序表单之前,您可能需要在代码中执行某些操作。例如,要启用DirectX硬件加速,需要创建主应用程序表单之前调用WindowsFormsSettings.ForceDirectXPaint方法。
本主题展示了在 C# 和Visual Basic中开发项目时可以将应用程序初始化代码放置在何处,如果您是Visual Basic开发人员,则可以根据自己的需求选择下面列出的方法之一。
C# Example
对于 C# 项目,在解决方案资源管理器中找到 Program.cs 文件,该文件包含static void Main()过程,您可以在Application.Run方法调用之前添加自定义代码。
C# :
using DevExpress.XtraEditors; using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { //Add your code here WindowsFormsSettings.ForceDirectXPaint(); WindowsFormsSettings.EnableFormSkins(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
Visual Basic 示例 - 方法 1
通过这种方法,您可以创建 Main 函数并将其设置为应用程序的入口点。
1.在解决方案资源管理器中右键单击项目,并在上下文菜单中选择Properties。
2.取消选中 Enable application framework,然后在Application选项卡中将Startup object设置为 Sub Main。
3.切换到主表单的代码编辑器,并手动将以下共享主过程添加到表单类中:
VB.NET:
Public Class Form1 Shared Sub Main() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Application.Run(New Form1) 'Specify the startup form End Sub End Class
4.在应用程序之前插入要执行的代码并运行方法调用。
VB.NET:
Public Class Form1 Shared Sub Main() 'Add your code here DevExpress.XtraEditors.WindowsFormsSettings.ForceDirectXPaint() DevExpress.XtraEditors.WindowsFormsSettings.EnableFormSkins() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Application.Run(New Form1) 'Specify the startup form End Sub End Class
Visual Basic 示例 - 方法 2
通过这种方法,您可以订阅应用程序的启动事件来执行自定义操作。
1.在解决方案资源管理器中右键单击项目,并在上下文菜单中选择Properties。
2.单击Application选项卡中的 View Application Events按钮。
3.在打开的ApplicationEvents.vb文件中订阅Startup事件。
4.在生成的Startup事件处理程序中插入要执行的代码。
VB.NET:
Imports DevExpress.XtraEditors Imports Microsoft.VisualBasic.ApplicationServices Namespace My ' The following events are available for MyApplication: ' Startup: Raised when the application starts, before the startup form is created. ' Shutdown: Raised after all application forms are closed. This event is not raised if the application terminates abnormally. ' UnhandledException: Raised if the application encounters an unhandled exception. ' StartupNextInstance: Raised when launching a single-instance application and the application is already active. ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. Partial Friend Class MyApplication Private Sub MyApplication_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup 'Add your code here WindowsFormsSettings.ForceDirectXPaint() WindowsFormsSettings.EnableFormSkins() End Sub End Class End Namespace