2016-01-13 49 views
-1

我有Windows应用程序的形式,我需要隐藏form_Load事件Form,它应该从任务栏被隐藏,并且还从任务切换(即当我按Alt键 + Tab)。意味着它不会显示在任何地方。隐藏Windows窗体(任务栏,任务切换等)

+1

如果你不想用户与它交互,为什么不只是创建一个控制台应用程序,而不是一个Windows窗体? – user1666620

+2

[启动时隐藏表单:为什么不this.Hide()隐藏我的表单?](http://stackoverflow.com/questions/3769337/hiding-forms-on-startup-why-doesnt-this - 隐藏我的表格) – user1666620

回答

0

所以,你应该试试这个:

public void Form1_Load(object sender, EventArgs e) 
{ 
    ShowInTaskbar = false; 
    Hide(); 
} 

ShowInTaskbar表明你阉应该Form出现在任务栏中。

Alt键 + 标签我发现this solution on StackOverflow隐藏:

protected override CreateParams CreateParams 
{ 
    get 
    { 
     var Params = base.CreateParams; 
     Params.ExStyle |= 0x80; 
     return Params; 
    } 
} 

简单地覆盖你的FormCreateParams财产如上图所示。

UPDATE事件的顺序打开Form时导致了能见度在Load事件后恢复的问题。所以你需要覆盖这样的东西:

protected override void OnShown(EventArgs e) 
{ 
    base.OnShown(e); 
    // if you still want to hide 
    Hide(); 
} 
+0

它的工作,但形式仍然显示在主窗口。 –

+0

@vyaskarnavkumar所以@ user1666620是正确的。你的解决方案在于这个答案:http://stackoverflow.com/a/8549250/5528593一些框架代码试图让你“可见”,所以这个重写的'OnVisibleChanged'上面的代码将工作。 –