2013-04-24 27 views
-1

我正在運行啓動一個形式,我想隱藏一個控制檯應用程序,但保持活躍,使得它做什麼(發動擊的.exe文件)繼續工作。C#隱藏的形式,但保持活躍

這裏是我的代碼不能正常工作:

Form1 f1 = new Form1(); 
f1.Show(); 
foreach (Form f in Application.OpenForms) 
{ 
    if (f.Name == "Form1") 
     f.Hide();  
     //f.visible = false; 
} 

,並試圖設置隱藏或可見Form_load中沒有任何工作...

什麼想法?

+0

展示你是如何從一個控制檯調用此工作流程。 – David 2013-04-24 14:10:55

+0

@大衛,你是什麼意思? – 2013-04-24 14:11:41

+4

爲什麼你需要一個表格?爲什麼不使用[全局鍵盤鉤子](http://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook)? – 2013-04-24 14:13:40

回答

0

這樣做,隱藏形式良好,保持活躍。

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

+1

雖然這並不真正隱藏它。它最小化到現在任務欄之上。 – LarsTech 2013-04-26 15:16:00

+0

不!它隱藏在任務欄後面...所以它是隱形的... – 2013-04-26 17:37:09

3

我認爲你要使用WinForms不正確。這不是golden hammer

在一個有利的工具或概念的誤用此反模式的結果。開發人員和管理人員對現有方法感到滿意,並且不願意學習和應用更適合的方法。

Golden Hammer

WinForms不是用來接收鍵盤輸入時窗口不處於活動狀態(在我看來很好的理由)。

你應該考慮是Global Keyboard Hook

+0

我會試試這個,謝謝 – 2013-04-24 14:29:22

+0

@DrewSalesse我沒看到那是怎麼回事代碼正在作爲['Application.Exit文檔'](http://msdn.microsoft.com/en-us/library/system.windows.forms.application.exit(v = vs.71).aspx)說當調用Application.Exit方法退出應用程序時,不會引發Form.Closed和Form.Closing事件。即使有一個可以將所需內容拼湊在一起的答案,我的答案仍然成立。你正在嘗試做一些不是'WinForms'的東西。如果您在獲得足夠的代表時覺得需要添加並接受自己的答案,那就是您的權利,但我非常不同意。 – 2013-04-24 19:21:20

+0

你是對的...實際上,這是我想要的(我正在使用鍵盤鉤子)謝謝... this.WindowState = FormWindowState.Minimized;這個。ShowInTaskbar = false – 2013-04-25 13:40:56