【发布时间】:2016-09-05 19:13:55
【问题描述】:
我的应用程序的 Form1 是我想要的登录页面:
- 在某些条件下显示
- 在某些情况下隐藏和显示 Form2
我可以像这样通过按钮单击事件隐藏/显示表单,
private void button1_Click(object sender, EventArgs e)
{
Form2 f2= new Form2();
f2.Show();
this.Hide();
}
但同样的技术不适用于 Form1_Load。
我已经尝试过this thread中的第一个例子,
Program.cs
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run();
}
Form1
private void Form1_Load(object sender, EventArgs e)
{
Form2 f2= new Form2();
f2.Show();
this.Hide();
}
但它既没有显示 Form1 也没有显示 Form2,我不明白它是怎么做到的。第二个例子我看不懂怎么实现,接下来google的结果就更混乱了。
请帮助我坚持了 2 个小时。
【问题讨论】:
-
应该是:program.cs中的
Application.Run(new Form1()); -
这是默认方式。但是在 Form1_Load 上执行
this.Hide()并不会隐藏 Form1。 -
你的程序需要创建和加载
Form1。违约与否;你在某处需要new Form1和Show。Application.Run通常以正确的方式处理此问题。另一种方法是在您的主函数中创建一个Form1。注意.Show是一个非阻塞调用,如果你不处理它,你的应用程序将会退出。