6

こんにちは、みんな、

子ウィンドウを作成するウィンドウ プロパティが mdiparent の中心にあるこのコードがあります。

        Form2 f = new Form2();

        f.MdiParent = this;

        //center screen is working.

        //f.StartPosition = FormStartPosition.CenterScreen;

        f.StartPosition = FormStartPosition.CenterParent;

ただし、子ウィンドウを中央でポップする代わりに、左側にロードします。誰でもこれについて私を助けることができますか?以下のスクリーンショットを参照してください。

私はvbでも同じことをしようとしました。そこでも同じエラーが発生します。FormStartPosition.CenterParent のプロパティはダミーだと思います。

代替テキスト http://img13.imageshack.us/img13/7003/errorprb.jpg

4

4 に答える 4

16

私はこれを少し試しましたが、最初は Patrick と同じ解決策にたどり着きました。しかし、プロパティのドキュメントにあるStartPosition次のステートメントに悩まされました。

また、フォームを画面の中央、またはマルチ ドキュメント インターフェイス (MDI) 子フォームなどのフォームの親フォームの中央に表示するように配置することもできます。

だから、私は方法がなければならないと決めました。そして、すべてが直感的であるとは限りませんが、次のように設定します: StartPositionto CenterScreen( not CenterParent ):

MdiChildUI form = new MdiChildUI();
form.MdiParent = this;
form.StartPosition = FormStartPosition.CenterScreen;
form.Show();

もちろん、コードではなくデザイナーで設定することもできます。

于 2009-08-04T15:48:39.777 に答える
5

MDIコンテナフォームを所有者として子供に見せようとしましたが、例外が発生しました。次のように、子を表示する前に手動で場所を設定できます。

Form2 f = new Form2();
f.MdiParent = this;
f.StartPosition = FormStartPosition.Manual;
f.Location = new Point((this.ClientSize.Width - f.Width) / 2,
                       (this.ClientSize.Height - f.Height) / 2);
f.Show();

編集:

f.StartPosition = FormStartPosition.CenterScreen;

mdichildをその親フォームの中央に配置する正しい方法です。

于 2009-08-04T15:32:33.370 に答える
5

中央の画面として開始位置を設定すると、私にとって完璧に機能します。

于 2009-08-04T15:54:52.167 に答える