问题:使用Application.Run()执行下面的代码,没有任何参数显示任何内容。
背景信息:我有一个WinForms应用程序,我正在运行,我希望默认表单是单例,而不是在我第一次运行Application.Run时显示(我想完全控制何时显示它)。
在我的Program.cs中,使用
Application.Run(Form1.Instance)
工作得很好,但我使用的是Application.Run(),没有参数,后跟Form1.Instance.Show(),这样我就可以控制何时隐藏和显示我的Form1。
我在这里缺少什么?
的Program.cs:
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run();
Form1.Instance.Show();
}
}
Form1.cs中:
public partial class Form1 : Form
{
private static Form1 instance;
public Form1()
{
InitializeComponent();
}
public static Form1 Instance
{
get
{
if (instance == null)
{
instance = new Form1();
}
return instance;
}
}
}
答案 0 :(得分:4)
把Form1.Instance.Show();在Application.Run();
之前 Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1.Instance.Show();
Application.Run();
并处理Form1 t oforce应用程序的formclosed事件以退出
private void Form1_FormClosed(object sender, FormClosedEventArgs e) { Application.Exit(); }