我在网上发现了一个非常简单的方法,可以让我在我的应用程序中隐藏主窗体:
创建控制台应用程序
将输出类型设置为Windows窗体应用程序
当我从visual studio中的调试或手动运行应用程序时,这非常有效。
然而..
我还将此应用程序设置为使用Windows自动启动(在本例中为Windows 7),因此我不必每次都手动启动它。当发生这种情况时,有一个非常非常短暂的时刻,我仍然可以看到全屏幕闪烁。有没有办法阻止这种情况发生?
编辑:人们似乎错过了一件重要的事情。 该项目是作为控制台应用程序创建的,因此它具有无Form或Application.Run()方法。它只有一个静态Main方法,就像任何其他控制台应用程序一样。
Edit2:感兴趣的是,我是否应该使用正常的WinForms项目并尝试使用建议的答案或其他解决方案隐藏主窗口?
谢谢!
答案 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;
}