2012-12-08 47 views
2

我正在使用安裝了Windows Mobile 6.1的智能設備。我需要完全隱藏我的應用程序(一個Form),但我無法做到這一點。我試圖調用Form.Hide方法,但它沒有任何效果,表單仍然是開放的,可見的和最大化的。我也試着按照this post如何隱藏使用.NET Compact Framework的表單

[DllImport("coredll.dll")] 
static extern int ShowWindow(IntPtr hWnd, int nCmdShow); 

public Form1() 
{ 
    InitializeComponent(); 
    Hide(); 
} 

public new void Hide() 
{ 
    const int SW_MINIMIZED = 6; 

    FormBorderStyle = FormBorderStyle.FixedDialog; 
    WindowState = FormWindowState.Normal; 
    ControlBox = true; 
    MinimizeBox = true; 
    MaximizeBox = true; 

    // Since there is no WindowState.Minimize, we have to P/Invoke ShowWindow 
    ShowWindow(this.Handle, SW_MINIMIZED); 
} 

但是沒有任何影響(再次)。 做這項工作的正確方法是什麼?

+0

您無法隱藏尚不可見的窗口。而是將窗體的WindowState屬性設置爲FormWindowState.Minimized。或者只是不要調用Show(),直到你真的希望它可見。 –

+1

如果你想「隱藏」應用程序,爲什麼你首先有一個表單? – ctacke

+0

@ctacke我用什麼來代替我的From? – Nick

回答

1

一個應用程序不需要調用Application.Run(它需要精簡框架中的Form)才能運行。如果您的應用不需要用戶界面,請不要創建表單。你可以創建一個狀態循環,多線程和幾乎沒有任何形式的Main入口點的其他任何東西。如果您需要處理Windows消息,則可以通過自己撥打GetMessageDispatchMessage來創建自己的消息泵。

相關問題