Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#隐藏表单但保持活动状态_C#_Winforms - Fatal编程技术网

C#隐藏表单但保持活动状态

C#隐藏表单但保持活动状态,c#,winforms,C#,Winforms,我正在运行一个控制台应用程序,它启动一个我想隐藏的表单,但保持活动状态,以便它所做的事情(在键盘上启动一个.exe)继续工作 以下是我的代码,它不起作用: Form1 f1 = new Form1(); f1.Show(); foreach (Form f in Application.OpenForms) { if (f.Name == "Form1") f.Hide(); //f.visible = false; } 试图在表单上设置

我正在运行一个控制台应用程序,它启动一个我想隐藏的表单,但保持活动状态,以便它所做的事情(在键盘上启动一个.exe)继续工作

以下是我的代码,它不起作用:

Form1 f1 = new Form1();
f1.Show();
foreach (Form f in Application.OpenForms)
{
    if (f.Name == "Form1") 
        f.Hide();       
        //f.visible = false;
}
试图在表单上设置隐藏或可见加载也不起作用


有什么想法吗?

我认为您试图错误地使用
WinForms
。这不是一个问题

此反模式会导致误用受欢迎的工具或概念。开发人员和管理人员对现有方法感到满意,不愿意学习和应用更适合的方法

WinForms
的设计目的不是在窗口未激活时接收键盘输入(我认为这是有充分理由的)


你应该研究的是一个。

这样做了,很好地隐藏了表单并保持活动状态

this.WindowState=FormWindowState.Minimized;
this.ShowInTaskbar=false

显示您如何从控制台调用此工作流。为什么需要表单?为什么不使用?当变量
f1
中有对表单的引用时,为什么要搜索
OpenForms
?请注意,如果您使用的是
OpenForms
,则有99.9%的几率您使用不正确。在我的一生中,我只见过一个恰当地使用它的实例。@DrewSalesse如果表单从来没有被显示过,那么它就不是一个真正的表单,从概念上讲,并且作为一般规则,当编程违反类的概念目的时,往往会导致更多的问题,然后它就会解决。整个问题就是一个例子。@Servy@DrewSalesse我看不出当调用Application.Exit方法退出应用程序时,says
Form.Closed和Form.Closed事件是如何工作的。
即使有一个答案可以将您想要的东西拼凑在一起,我的答案仍然有效。您试图做的事情不是
WinForms
的目的。如果你觉得有必要在获得足够的口碑时添加并接受自己的答案,那是你的权利,但我尊重地不同意。你是对的。。。实际上,这正是我想要的(我正在使用键盘挂钩),谢谢。。。this.WindowState=FormWindowState.Minimized;this.ShowInTaskbar=false但这并没有真正隐藏它。它现在最小化到任务栏的正上方。