.NET TIPS

Windowsフォームの開始表示位置を設定するには?

デジタルアドバンテージ 遠藤 孝信
2005/09/09

 通常、Windowsフォームの開始表示位置(Windowsアプリケーション実行開始時のウィンドウの表示位置)はWindowsによって適切に決められる。しかし、フォームをデスクトップの中央に表示したり、任意の位置に表示したりすることも可能だ。本稿ではこれらの方法についてまとめる。

デフォルトの開始表示位置

 フォームの開始表示位置は、フォームのStartPositionプロパティの値によって決まる。このプロパティにはFormStartPosition列挙体(System.Windows.Forms名前空間)の値を設定するが、そのデフォルト値はFormStartPosition.WindowsDefaultLocationである。この場合、フォームの表示位置はWindowsによって自動的に決定される。

デスクトップの中央に表示

 アプリケーションの実行開始時に、フォームをデスクトップの中央に表示するには、フォームのStartPositionプロパティにFormStartPosition.CenterScreenを設定すればよい。

this.StartPosition = FormStartPosition.CenterScreen;
Me.StartPosition = FormStartPosition.CenterScreen
フォームをデスクトップの中央に表示(上:C#、下:VB.NET)
thisやMeはフォームのインスタンスを参照しているものとする。

 なお、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)
フォームを任意の位置に表示(上:C#、下:VB.NET)
thisやMeはフォームのインスタンスを参照しているものとする。この例では、フォームを画面の左上隅に表示している。

 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)
フォームを任意の位置に表示(上:C#、下:VB.NET)
thisやMeはフォームのインスタンスを参照しているものとする。この例では、フォームをデスクトップの作業領域内の左上隅に表示している。

 DesktopLocationプロパティにより表示位置を指定した場合、その座標系の原点はデスクトップの表示領域の左上隅となる。このため、デスクトップの左部や上部にツールバーやタスク・バーなどをドッキングさせて表示していても、フォームがそれらに隠れることがない。

 以下の画面はLocationプロパティとDesktopLocationプロパティの違いを示している。

Locationプロパティ設定時(画面左)とDesktopLocationプロパティ設定時(画面右)の違い
どちらも表示位置として(0, 0)を設定している。Locationプロパティの原点は画面の左上隅となるため、タスク・バーなどがデスクトップにドッキングしている場合にウィンドウが隠れてしまうことがある。DesktopLocationプロパティではデスクトップの表示領域の左上隅が原点となるためタスク・バーなどでウィンドウが隠れることはない。

 なお、フォームが表示された後(例えばLoadイベントの発生時)では、StartPositionプロパティの設定なしにLocationプロパティやDesktopLocationプロパティによりフォームの表示位置を設定できる。

 また、フォームをダイアログ・ボックスとして使用する場合の開始表示位置については「TIPS:ダイアログ・ボックスの開始表示位置を設定するには?」 でまとめているので、そちらも参照していただきたい。End of Article

カテゴリ:Windowsフォーム 処理対象:ウィンドウ
使用ライブラリ:Formクラス(System.Windows.Forms名前空間)
使用ライブラリ:FormStartPosition列挙体(System.Windows.Forms名前空間)
関連TIPS:ダイアログ・ボックスの開始表示位置を設定するには?
 
この記事と関連性の高い別の.NET TIPS
ダイアログ・ボックスの開始表示位置を設定するには?
Windowsアプリケーションの位置やサイズを保存するには?
マウス・カーソルの位置を取得・設定するには?
Windowsフォームでフォームのコレクションを使用するには?
各フォームの共通要素を基本フォームにまとめるには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH