在启动时隐藏表单:为什么不这样.隐藏()隐藏我的表单?

Pie*_*ter 13 c# forms

我想在启动时隐藏我的应用程序的主窗口,所以我把它放在构造函数中:

this.Hide();
Run Code Online (Sandbox Code Playgroud)

这并不掩盖我的形式.看起来我只能通过按钮来隐藏表单.我在这里做错了吗?

Øyv*_*hen 28

你可以使用这行代码.它不会隐藏它,但它会被最小化:

this.WindowState = FormWindowState.Minimized;
Run Code Online (Sandbox Code Playgroud)

此外,如果您不希望它显示在任务栏上,您可以添加以下行:

this.ShowInTaskbar = false;
Run Code Online (Sandbox Code Playgroud)

但是,如果您不希望首先看到它,为什么要创建该表单?


小智 13

只需覆盖OnVisibleChanged方法并在其中更改表单的可见性,如下所示:

protected override void OnVisibleChanged(EventArgs e)
{
    base.OnVisibleChanged(e);
    this.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)

就是这样!简单干净.


小智 5

如果你更愿意使用 this.Hide 或 this.Show 你可以这样做

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    this.Hide();
}
Run Code Online (Sandbox Code Playgroud)