C#でWindowsフォームアプリケーションのフォームのデスクトップ上の位置とサイズを取得、設定する方法を紹介します。
デスクトップ上のフォームの位置を取得、設定するにはSystem.Windows.Forms名前空間にあるFormクラスのDesktopLocationプロパティを使用します。
デスクトップ上のフォームの位置とサイズを取得、設定するにはFormクラスのDesktopBoundsプロパティを使用します。
本記事ではVisual Studioで作成した、Windowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。
フォームのデスクトップ上の位置とサイズを取得する
DesktopLocationプロパティはフォームのデスクトップ上の位置をSystem.Drawing名前空間のPoint構造体で返します。
DesktopBoundsプロパティはフォームのデスクトップ上の位置とサイズをSystem.Drawing名前空間のRectangle構造体で返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// フォームのインスタンスを生成 Form form = new Form(); // フォームを表示 form.Show(); // デスクトップ上の位置を取得 Point desktopLocation = form.DesktopLocation; // X座標を取得 int x = desktopLocation.X; // Y座標を取得 int y = desktopLocation.Y; Console.WriteLine($"X座標: {x} Y座標: {y}"); // デスクトップ上の位置とサイズを取得 Rectangle desktopBounds = form.DesktopBounds; // 左座標を取得 int left = desktopBounds.Left; // 上座標を取得 int top = desktopBounds.Top; // 幅を取得 int width = desktopBounds.Width; // 高さを取得 int height = desktopBounds.Height; Console.WriteLine($"左座標: {left} 上座標: {top}"); Console.WriteLine($"幅: {width} 高さ: {height}"); |
DesktopLocationプロパティが返すPoint構造体には、フォームの左上隅のX座標を表すXプロパティと、Y座標を表すYプロパティがあります。
DesktopBoundsプロパティが返すRectangle構造体には、フォームの左上隅を座標を表すLocationプロパティ、X座標を表すXプロパティ、Y座標を表すYプロパティ、左座標を表すLeftプロパティ、上座標を表すTopプロパティ、右座標を表すRightプロパティ、下座標を表すBottomプロパティ、フォームのサイズを表すSizeプロパティ、幅を表すWidthプロパティ、高さを表すHeightプロパティがあります。
フォームのデスクトップ上の位置とサイズを設定する
フォームのデスクトップ上の位置とサイズはコードで設定します。(フォームデザイナーのプロパティグリッドでは設定できません。)
コードで設定する
コードエディタを表示して以下のコードを入力します。
1 2 3 4 5 6 7 8 9 10 11 |
// フォームのインスタンスを生成 Form form = new Form(); // フォームの開始位置をマニュアルに設定 form.StartPosition = FormStartPosition.Manual; // デスクトップ上の位置を定義 Point location = new Point(300, 200); // フォームのデスクトップ上の位置を設定 form.DesktopLocation = location; // フォームを表示 form.Show(); |
1 2 3 4 5 6 7 8 9 10 11 |
// フォームのインスタンスを生成 Form form = new Form(); // フォームの開始位置をマニュアルに設定 form.StartPosition = FormStartPosition.Manual; // デスクトップ上の位置とサイズを定義 Rectangle bounds = new Rectangle(200, 100, 800, 600); // フォームのデスクトップ上の位置とサイズを設定 form.DesktopBounds = bounds; // フォームを表示 form.Show(); |
フォームの位置を指定する場合は、FormクラスのStartPositionプロパティ(フォームの開始位置)に、System.Windows.Forms名前空間にあるFormStartPosition列挙型のManualを指定します。
フォームのデスクトップ上の位置は、FormクラスのSetDesktopLocationメソッドで設定することもできます。
1 2 3 4 5 6 7 8 9 |
// フォームのインスタンスを生成 Form form = new Form(); // フォームの開始位置をマニュアルに設定 form.StartPosition = FormStartPosition.Manual; // フォームのデスクトップ上の位置を設定 form.SetDesktopLocation(400, 300); // フォームを表示 form.Show(); |
フォームのデスクトップ上の位置とサイズは、FormクラスのSetDesktopBoundsメソッドで設定することもできます。
1 2 3 4 5 6 7 8 9 10 11 |
// フォームのインスタンスを生成 Form form = new Form(); // フォームの開始位置をマニュアルに設定 form.StartPosition = FormStartPosition.Manual; // デスクトップ上の位置とサイズを定義 Rectangle bounds = new Rectangle(); // フォームのデスクトップ上の位置とサイズを設定 form.SetDesktopBounds(100, 200, 300, 400); // フォームを表示 form.Show(); |