1

なぜこれがフォームを画面の中央に配置しないのですか?

        Form2 mySettings = new Form2();
        mySettings.StartPosition = FormStartPosition.CenterParent;
        mySettings.Show();

私が使用すると動作します:

mySettings.ShowDialog();

ただし、これに伴う問題は、Form2を同時に開いている間は、ユーザーがメインフォームにアクセスできないことです。

何か案は?

4

1 に答える 1

0

これはFormStartPosition.CenterParent、 がフォームをその親の位置に集中させるためです。Form.Show() には技術的に親がありません。コメントで既に推奨されているように、使用FormStartPosition.CenterScreenすると目的の動作が得られます。

FormStartPosition.CenterParentオーバーロードを使用する場合は、主に使用する必要がありますForm.ShowDialog(IWin32Window)

別のフォームの位置を中心にする必要がある場合は、現在のフォームの位置とサイズを使用して、新しいウィンドウの座標を自分で計算する必要があります。次に、FormStartPosition.Manual設定を使用して、新しく作成されたフォームで提供された場所とサイズの値を使用します。

于 2012-12-03T23:03:56.943 に答える