[VC2005] フォームを画面の中央に配置する方法

◆概要
この資料は、Microsoft(R) Visual C#で フォームを画面の中央に配置する方法について記述しています。


◆StartPositionプロパティを設定する方法

Visual C# のフォームのデザイン時にプロパティ・ウィンドウでStartPositionプロパティをCenterScreenに設定することによって、フォームを画面の中央に配置することができます。


 プログラムで設定するときは、フォームのStartPositionプロパティにFormStartPosition.CenterScreenを設定します。ただし、Form_Loadイベントハンドラではダメで、フォームのコンストラクタ内やフォームのインスタンス作成直後に設定する必要があります。

        public Form1() {
            InitializeComponent();
            // フォームのコンストラクタ内で設定
            this.StartPosition = FormStartPosition.CenterScreen;
        }               

        /// Form2を呼び出すとき
        /// フォームのインスタンス作成直後に設定
        private void button1_Click(object sender, EventArgs e) {
            using (Form2 _frm2 = new Form2()) {
                _frm2.StartPosition = FormStartPosition.CenterScreen;
                _frm2.ShowDialog(this);
            }            
        }
◆フォームのLeftプロパティ、Topプロパティを設定する方法

フォームのLeftプロパティ、Topプロパティをフォームのロードイベントで次のように設定します。

//フォームを画面の中央に配置

this.Left = (Screen.PrimaryScreen.Bounds.Width - this.Width) / 2;

this.Top = (Screen.PrimaryScreen.Bounds.Height - this.Height) / 2;

◆SetBoundsメッソッドで設定する方法

フォームのSetBoundsメッソッドを使って次のようにすることができます。

//フォームを画面の中央に配置

this.SetBounds((Screen.PrimaryScreen.Bounds.Width - this.Width) / 2,
    (Screen.PrimaryScreen.Bounds.Height- this.Height) / 2, this.Width, 
    this.Height);