フォームの位置とサイズを設定する方法 (Windows フォーム .NET)
フォームが作成されると、サイズと位置は最初に既定値に設定されます。 フォームの既定のサイズの幅と高さは、通常、800x500 ピクセルです。 フォームが表示されるときの最初の位置は、いくつかの異なる設定によって異なります。
フォームのサイズは、デザイン時に Visual Studio を使用して変更したり、実行時にコードを使用して変更したりできます。
デザイナーでサイズを変更する
プロジェクトに新しいフォームを追加した後、フォームのサイズは 2 つの異なる方法で設定されます。 まず、デザイナーでサイズ グリップを使用して設定できます。 右端、下端、または角をドラッグすることで、フォームのサイズを変更できます。
デザイナーが開いている間にフォームのサイズを変更する 2 番目の方法は、プロパティ ペインを使用することです。 フォームを選択し、Visual Studio で [プロパティ] ペインを見つけます。 下にスクロールして [サイズ] を展開します。 [幅] と [高さ] を手動で設定できます。
コードでサイズを変更する
フォームの初期サイズをデザイナーで設定した場合でも、コードを使用してサイズを変更できます。 コードを使用したフォームのサイズの変更は、アプリケーションによってフォームの既定のサイズが不十分であると判断された場合に便利です。
フォームのサイズを変更するには、フォームの幅と高さを表す 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
別のフォームのサイズを変更する
別のフォームを作成した後、フォームを参照する変数を使用して、そのサイズを変更できます。 たとえば、2 つのフォーム Form1
(この例でのスタートアップ フォーム) と Form2
があるとします。 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 プロパティには、フォームの現在の位置が保持されています。 どちらのプロパティも、デザイナーを使用して設定できます。
FormStartPosition 列挙型 | 説明 |
---|---|
CenterParent | フォームは、親フォームの境界内の中央に配置されます。 |
CenterScreen | フォームは現在の表示の中央に配置されます。 |
手動 | フォームの位置は、Location プロパティによって決定されます。 |
WindowsDefaultBounds | フォームは、Windows の既定の位置に配置され、Windows によって決定される既定のサイズに設定されます。 |
WindowsDefaultLocation | フォームは、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
別のフォームを配置する
別のフォームを作成した後、フォームを参照する変数を使用して、その位置を変更できます。 たとえば、2 つのフォーム Form1
(この例でのスタートアップ フォーム) と Form2
があるとします。 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
プロパティの設定に基づいて決まります。
関連項目
.NET Desktop feedback