2

次のコードがあります。

//Create the login form.
ConnectionTypeForm ctf = new ConnectionTypeForm();
if (ctf.ShowDialog() == DialogResult.OK)
{
    Form form = Statics.CreateForm(
        "Main Form",
        new MainDesignerControl());
    Application.Run(form);
}

プログラムを実行するConnectionTypeFormと、右側の (セカンダリ) モニターでMainForm開きますが、開くとすぐに左側のモニター (プライマリ) で開きます。開始位置を設定することはできませんFormStartPosition.CenterParentが、ConnectionTypeForm実際にはMainForm親ではないため、役に立ちません。

助言がありますか?同じモニターで開きたいだけです。

4

3 に答える 3

2

単純な解決策ではありませんが、アプリケーションの位置をいつでもレジストリに保存できます。フォームを開くたびに、その値が存在するかどうかを確認できます。

このようにして、自分自身または任意のユーザーがフォームを開く場所を変更できます。

いくつかの計算を使用すると、画面の「中心」を把握できます。

また、解像度が変更された場合も考慮する必要があります (たとえば、ラップトップをドッキング解除して解像度が変更された場合などに、アプリケーションが画面から消えないようにするため)。

于 2012-08-28T15:21:41.477 に答える
-1

これを試して :

Form form = new Form();
        form.StartPosition = FormStartPosition.CenterParent;
        form.Show();
于 2012-08-28T14:31:48.580 に答える