在我的应用程序中,我在我的MainForm类中调用了一个名为OnStart
的启动方法,该方法定义如下:
public void OnStart()
{
//code
}
当我从Main
方法调用它时,它不会运行。我究竟做错了什么?
(哦,和OnStop
方法一样。)
这是我的Program.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();
}
}
}
答案 0 :(得分:5)
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()
}
}
}
答案 1 :(得分:1)
您可能希望从表单的构造函数中运行OnStart()方法。在表单关闭之前,不会调用当前代码。与form.Close();
的事件处理程序相同答案 2 :(得分:1)
我建议你从MainForm_Load事件(或构造函数)调用这些方法。在关闭表单之前,Application.Run()方法之后不会发生任何事情。
答案 3 :(得分:1)
您无法在 Application.Run(mainForm);
之后添加cals ,它将无法正常工作。
例如,添加您要在Form
的{{1}}覆盖上运行的代码。