在自动运行中隐藏主要表单C#

时间:2011-02-16 21:35:38

标签: c# winforms hide autorun

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

  • 创建控制台应用程序

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

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

然而..

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

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

Edit2:感兴趣的是,我是否应该使用正常的WinForms项目并尝试使用建议的答案或其他解决方案隐藏主窗口?

谢谢!

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

我刚试过这个:

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

也设置

this.WindowState = System.Windows.Forms.FormWindowState.Minimized;

答案 2 :(得分:1)

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

为此,请使用此代码。

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

    base.OnLoad(e);
   }

感谢。 Ruhul

答案 3 :(得分:0)

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

我建议您将其创建为表单,然后按照Jeffery建议或创建的方式创建,并将其安装为每次启动的service

答案 4 :(得分:0)

而不是

Application.Run(new MainForm())

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

答案 5 :(得分:0)

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

这样的事情:

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;
}