1. ホーム
  2. c#

[解決済み] 親フォームの中央に子フォームを表示する(C#)。

2023-07-07 10:25:01

質問

新しいフォームを作成し、以下のように親フォームから呼び出します。

loginForm = new SubLogin();   
loginForm.Show();

子フォームを親の中央に表示する必要があります。そこで、子フォームの読み込みで次のようにします。

Point p = new Point(this.ParentForm.Width / 2 - this.Width / 2, this.ParentForm.Height / 2 - this.Height / 2);
this.Location = p;

しかし、これは親フォームがnullであるため、エラーを投げています。Parentプロパティも設定してみましたが、役に立ちませんでした。この件に関して何か情報があれば教えてください。

どのように解決するのですか?

試してみてください。

loginForm.StartPosition = FormStartPosition.CenterParent;
loginForm.ShowDialog(this);

もちろん、子ウィンドウは親ウィンドウのブロック化されたフォーム (ダイアログ) になります。 ShowDialogShow ..

loginForm.Show(this);

ただし、StartPositionを指定する必要があります。