この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
通常、Windowsフォームの開始表示位置(Windowsアプリケーション実行開始時のウィンドウの表示位置)はWindowsによって適切に決められる。しかし、フォームをデスクトップの中央に表示したり、任意の位置に表示したりすることも可能だ。本稿ではこれらの方法についてまとめる。
フォームの開始表示位置は、フォームのStartPositionプロパティの値によって決まる。このプロパティにはFormStartPosition列挙体(System.Windows.Forms名前空間)の値を設定するが、そのデフォルト値はFormStartPosition.WindowsDefaultLocationである。この場合、フォームの表示位置はWindowsによって自動的に決定される。
アプリケーションの実行開始時に、フォームをデスクトップの中央に表示するには、フォームのStartPositionプロパティにFormStartPosition.CenterScreenを設定すればよい。
this.StartPosition = FormStartPosition.CenterScreen;
Me.StartPosition = FormStartPosition.CenterScreen
なお、StartPositionプロパティの設定はフォームが表示される前に設定しておく必要がある(通常はフォームのコンストラクタ内やフォームのインスタンス作成直後に設定する。Visual Studio .NETではフォームのデザイン時にプロパティ・ウィンドウで設定できる)。
アプリケーションの実行時にフォームを任意の位置に表示するには、まずStartPositionプロパティをFormStartPosition.Manualに設定する。そして表示位置をフォームのLocationプロパティあるいはDesktopLocationプロパティに設定する。
Locationプロパティを設定した場合、その座標系の原点は画面の左上隅となる。
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(0, 0);
Me.StartPosition = FormStartPosition.Manual
Me.Location = New Point(0, 0)
Locationプロパティの代わりに、LeftプロパティとTopプロパティにより表示位置のX座標とY座標を個別に設定することもできる。
次に、Locationプロパティではなく、DesktopLocationプロパティにより表示位置を設定する場合のコード例を示す。DesktopLocationプロパティはコードによってのみ設定でき、プロパティ・ウィンドウからは設定できない。
this.StartPosition = FormStartPosition.Manual;
this.DesktopLocation = new Point(0, 0);
Me.StartPosition = FormStartPosition.Manual
Me.DesktopLocation = New Point(0, 0)
DesktopLocationプロパティにより表示位置を指定した場合、その座標系の原点はデスクトップの表示領域の左上隅となる。このため、デスクトップの左部や上部にツールバーやタスク・バーなどをドッキングさせて表示していても、フォームがそれらに隠れることがない。
以下の画面はLocationプロパティとDesktopLocationプロパティの違いを示している。
なお、フォームが表示された後(例えばLoadイベントの発生時)では、StartPositionプロパティの設定なしにLocationプロパティやDesktopLocationプロパティによりフォームの表示位置を設定できる。
また、フォームをダイアログ・ボックスとして使用する場合の開始表示位置については「TIPS:ダイアログ・ボックスの開始表示位置を設定するには?」 でまとめているので、そちらも参照していただきたい。
カテゴリ:Windowsフォーム 処理対象:ウィンドウ
使用ライブラリ:Formクラス(System.Windows.Forms名前空間)
使用ライブラリ:FormStartPosition列挙体(System.Windows.Forms名前空間)
関連TIPS:ダイアログ・ボックスの開始表示位置を設定するには?
Copyright© Digital Advantage Corp. All Rights Reserved.