启动代码未运行

本文关键字:运行 代码 启动 | 更新日期: 2023-09-27 18:29:14

在我的应用程序中,我让它调用MainForm类中名为OnStart的启动方法,该方法的定义如下:

public void OnStart()
{
    //code
}

当我从Main方法调用它时,它不会运行。我做错了什么?(哦,和OnStop方法一样。)

这是我的程序.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Logger
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            MainForm mainForm = new MainForm();
            Application.Run(mainForm);  
            AppDomain.CurrentDomain.ProcessExit += new EventHandler (mainForm.OnStop);
            mainForm.OnStart();
        }
    }
}

启动代码未运行

Application.Run将挂起,直到表单关闭,因此您需要在它之前调用OnStart,在它之后调用OnStop

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Logger
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            MainForm mainForm = new MainForm();
            mainForm.OnStart();
            Application.Run(mainForm);  
            mainForm.OnStop()
        }
    }
}

您可能希望在窗体的构造函数中运行OnStart()方法。直到窗体关闭,才会调用当前代码。与form.Close()的事件处理程序相同;

我建议您从MainForm_Load事件(或构造函数)调用这些方法。在关闭Form.之前,Application.Run()方法之后不会发生任何事情

不能在Application.Run(mainForm);之后添加cals,它将无法按预期工作。例如,添加要在FormOnLoad覆盖上运行的代码。