次の方法で共有


フォームの位置とサイズを設定する方法

フォームが作成されると、サイズと場所は最初に既定値に設定されます。 フォームの既定のサイズは、通常、幅と高さが 800 x 500 ピクセルです。 フォームが表示される最初の場所は、いくつかの異なる設定によって異なります。

フォームのサイズは、Visual Studio を使用してデザイン時に変更したり、コードを使用して実行時に変更したりできます。

デザイナーを使用してサイズを変更する

新しい フォームがプロジェクトに追加されると 、フォームのサイズは 2 つの異なる方法で設定されます。 最初に、デザイナーでサイズ調整用グリップを使用して設定できます。 右端、下端、または角をドラッグすると、フォームのサイズを変更できます。

ソリューション エクスプローラーを右クリックして、グリップ付きの Windows フォーム プロジェクトに新しいフォームを追加する

デザイナーを開いているときにフォームのサイズを変更する 2 つ目の方法は、プロパティ ウィンドウを使用することです。 フォームを選択し、Visual Studio で [プロパティ ] ウィンドウを見つけます。 下にスクロールして サイズ を展開します。 高さを手動で設定できます。

ソリューション エクスプローラーを右クリックして、Windows フォーム プロジェクトに新しいフォームを追加する

コード内のサイズ変更

デザイナーはフォームの開始サイズを設定しますが、コードを使用してサイズを変更できます。 コードを使用してフォームのサイズを変更すると、アプリケーションに関してフォームの既定のサイズが不十分であると判断された場合に便利です。

フォームのサイズを変更するには、フォームの幅と高さを表す Sizeを変更します。

現在のフォームのサイズを変更する

コードがフォームのコンテキスト内で実行されている限り、現在のフォームのサイズを変更できます。 たとえば、ボタンが Form1 されている場合、クリックすると、 Click イベント ハンドラーが呼び出されてフォームのサイズが変更されます。

private void button1_Click(object sender, EventArgs e) =>
    Size = new Size(250, 200);
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Size = New Drawing.Size(250, 200)
End Sub

別のフォームのサイズを変更する

フォームを参照する変数を使用して、別のフォームの作成後に別のフォームのサイズを変更できます。 たとえば、 Form1 (この例ではスタートアップ フォーム) と Form2という 2 つのフォームがあるとします。 Form1 には、クリックすると Click イベントを呼び出すボタンがあります。 このイベントのハンドラーは、 Form2 フォームの新しいインスタンスを作成し、サイズを設定して表示します。

private void button1_Click(object sender, EventArgs e)
{
    Form2 form = new Form2();
    form.Size = new Size(250, 200);
    form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Dim form = New Form2 With {
        .Size = New Drawing.Size(250, 200)
    }
    form.Show()
End Sub

Sizeが手動で設定されていない場合、フォームの既定のサイズはデザイン時に設定されたサイズになります。

デザイナーと一緒のポジション

フォーム インスタンスを作成して表示すると、フォームの最初の場所は StartPosition プロパティによって決まります。 Location プロパティは、フォームの現在の場所を保持します。 どちらのプロパティもデザイナーを使用して設定できます。

開始位置が強調表示された Visual Studio のプロパティ ウィンドウ

FormStartPosition 列挙型 説明
CenterParent フォームは、親フォームの境界内の中央に配置されます。
CenterScreen フォームは現在の表示の中央に配置されます。
マニュアル フォームの位置は、 Location プロパティによって決まります。
WindowsDefaultBounds フォームは Windows の既定の場所に配置され、Windows によって決定される既定のサイズにサイズ変更されます。
Windowsデフォルト位置 フォームは Windows の既定の場所に配置され、サイズは変更されません。

CenterParent 値は、複数のドキュメント インターフェイス (MDI) 子フォーム、または ShowDialog メソッドで表示される通常のフォームでのみ機能します。 CenterParent は、 Show メソッドで表示される通常のフォームには影響しません。 フォーム (変数form ) を別のフォーム (parentForm 変数) に中央揃えするには、次のコードを使用します。

form.StartPosition = FormStartPosition.Manual;
form.Location = new Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
                          parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y);
form.Show();
form.StartPosition = Windows.Forms.FormStartPosition.CenterParent.Manual
form.Location = New Drawing.Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
                                  parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y)

form.Show()

コード付きのポジション

デザイナーを使用してフォームの開始位置を設定できますが、コードを使用して開始位置モードを変更するか、場所を手動で設定することができます。 コードを使用してフォームを配置すると、画面やその他のフォームに関連してフォームを手動で配置してサイズを設定する必要がある場合に便利です。

現在のフォームを移動する

コードがフォームのコンテキスト内で実行されている限り、現在のフォームを移動できます。 たとえば、ボタンが Form1 されている場合、クリックすると Click イベント ハンドラーが呼び出されます。 この例のハンドラーは、 Location プロパティを設定して、フォームの場所を画面の左上に変更します。

private void button1_Click(object sender, EventArgs e) =>
    Location = new Point(0, 0);
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Location = New Drawing.Point(0, 0)
End Sub

別のフォームを配置する

フォームを参照する変数を使用して、別のフォームの作成後に別のフォームの場所を変更できます。 たとえば、 Form1 (この例ではスタートアップ フォーム) と Form2という 2 つのフォームがあるとします。 Form1 には、クリックすると Click イベントを呼び出すボタンがあります。 このイベントのハンドラーは、 Form2 フォームの新しいインスタンスを作成し、場所を設定します。

private void button1_Click(object sender, EventArgs e)
{
    Form2 form = new Form2();
    form.Location = new Point(0, 0);
    form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Dim form = New Form2 With {
        .Location = New Drawing.Point(0, 0)
    }
    form.Show()
End Sub

Locationが設定されていない場合、フォームの既定の位置は、デザイン時にStartPosition プロパティが設定された内容に基づいています。

こちらも参照ください