[C#] モーダレスフォームを親ウィンドウの中央に表示するには
ダイアログなどのフォームを表示する場合、モーダル表示するのであれば、
Form1 f = new Form1(); f.StartPosition = FormStartPosition.CenterParent; f.ShowDialog(this); f.Dispose();
のようにすれば、
親ウィンドウの中央に、自動的に調整されて表示されます。
ですが、モーダレス表示させたい場合は、StartPositionプロパティを指定しても、中央には表示されません。
この場合、表示されるフォーム側(子側)で表示位置の調整が必要です。
FormLoadイベントで指定するのが良いようです。
private void Form1_Load(object sender, System.EventArgs e) { this.Location = new Point( this.Owner.Location.X + (this.Owner.Width - this.Width) / 2, this.Owner.Location.Y + (this.Owner.Height - this.Height) / 2 ); }
このように設定すれば、StartPositionプロパティの指定にかかわらず、中央に表示されます。
ただし紛らしいいので、一応StartPositionプロパティは
Manualに設定しておいたほうがいいかもしれません。
== ランキングに参加しています。ぜひクリックお願いします ==
ODBCデータソースを手動削除する tomcatのルートファイルにアクセスしたい時