启动代码没有运行?
问题描述:
在我的应用程序,我把它称之为启动方法,我称之为OnStart
MainForm类,它的定义是这样的:启动代码没有运行?
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();
}
}
}
答
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事件(或构造函数)调用这些方法。在关闭表单之前,Application.Run()方法之后什么都不会发生。
答
您不能在Application.Run(mainForm);
之后添加cals ,它将无法按预期工作。 例如,将要运行的代码添加到Form
的OnLoad
。
这完美的作品!我不知道代码“暂停”,因此在Application.Run之后直到应用程序关闭。 – 2012-03-28 21:28:52