C# 启动代码没有运行?

C# 启动代码没有运行?,c#,C#,在我的应用程序中,我让它调用MainForm类中名为OnStart的启动方法,该方法的定义如下: public void OnStart() { //code } 当我从Main方法调用它时,它不会运行。我做错了什么? (哦,这和OnStop方法是一样的。) 这是我的程序 using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace Lo

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

public void OnStart()
{
    //code
}
当我从
Main
方法调用它时,它不会运行。我做错了什么? (哦,这和
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();
            Application.Run(mainForm);  

            AppDomain.CurrentDomain.ProcessExit += new EventHandler (mainForm.OnStop);

            mainForm.OnStart();
        }
    }
}

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

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()

        }
    }
}

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

您不能在
Application.Run(mainForm)之后添加CAL,它将无法按预期工作。

例如,添加要在
表单
OnLoad
覆盖上运行的代码

这很好用!我不知道代码会在
应用程序之后“暂停”。运行
直到应用程序关闭。