3

我在网上找到了一个非常简单的方法,可以让我在我的应用程序中隐藏主窗体:

  • 创建控制台应用程序

  • 将输出类型设置为 Windows 窗体应用程序

当我从 Visual Studio 中的调试或手动运行应用程序时,这非常有效。

然而..

我还将此应用程序设置为使用 Windows 自动启动(在本例中为 Windows 7),因此我不必每次都手动启动它。当这种情况发生时,我仍然可以在非常非常短的时间内看到全屏形式的闪烁。有什么办法可以防止这种情况发生吗?

编辑:人们似乎错过了一件重要的事情。该项目是作为控制台应用程序创建的,因此它没有 Form 或 Application.Run()方法。与任何其他控制台应用程序一样,它只有一个静态 Main 方法。

Edit2:只是出于兴趣,我是否应该制作一个普通的 WinForms 项目并尝试使用建议的答案或其他解决方案隐藏该主窗口?

谢谢!

4

6 回答 6

3

Application.Run(Form)方法使提供的表单可见。创建表单,其Visible属性最初设置为,并在主循环中false使用无参数。Application.Run()

于 2011-02-16T21:40:41.087 回答
3

我刚刚测试了这个:

 private void Form1_Load(object sender, EventArgs e)
    {
      this.Hide();
    }

还设置

this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
于 2011-02-16T21:43:35.993 回答
1

主窗体不能直接隐藏。表单加载后,它必须做一些事情。

像这样的东西:

private void Form1_Load(object sender, EventArgs e)
{
  this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
  for (int i = 0; i <= 100; i++)
  {
    progressBar1.ForeColor = Color.Blue;
    progressBar1.Value = i;
    System.Threading.Thread.Sleep(40);
    if (progressBar1.Value == 100)
    {
      Form12 f1 = new Form12();
      f1.Show();
    }
  }
  this.Opacity = 0;
  this.Visible = false;
}
于 2012-10-09T14:10:33.163 回答
1

尝试从任务栏中隐藏应用程序。

为此,请使用此代码。

protected override void OnLoad(EventArgs e)
   {
    Visible = false; // Hide form window.
    ShowInTaskbar = false; // Remove from taskbar.
    Opacity = 0;

    base.OnLoad(e);
   }

谢谢。鲁胡尔

于 2016-10-28T05:07:11.287 回答
0

您可能看到的是命令窗口出现和消失。

我建议将其创建为表单,然后按照 Jeffery 的建议进行创建,或者将其创建并安装为每次启动的服务。

于 2011-02-16T22:13:40.617 回答
0

代替

Application.Run(new MainForm())

做任何你必须做的事,没有任何形式。您的应用不会显示在任何地方。

于 2011-02-16T23:12:28.197 回答