2

WindowsMo​​bile6.1がインストールされたスマートデバイスで作業しています。アプリケーション(a Form)を完全に非表示にする必要がありますが、これを行うことはできません。メソッドを呼び出そうとしましたForm.Hideが、効果はありません。フォームは開いたままで、表示され、最大化されています。私もこの投稿をフォローしようとしました:

[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);
}

しかし、効果はありません(再び)。この作業を行うための適切な方法は何ですか?

4

1 に答える 1

1

Application.Runアプリケーションを操作するために、への呼び出し(Compact Frameworkのフォームが必要)は必要ありません。アプリにUIが必要ない場合は、フォームを作成しないでください。Mainフォームがなくても、エントリポイントから状態ループやマルチスレッドなどを作成できます。Windowsメッセージを処理する必要がある場合はGetMessageDispatchMessage自分で呼び出して、いつでも独自のメッセージポンプを作成できます。

于 2012-12-09T16:31:20.217 に答える