フォームが作成されると、サイズと場所は最初に既定値に設定されます。 フォームの既定のサイズは、通常、幅と高さが 800 x 500 ピクセルです。 フォームが表示される最初の場所は、いくつかの異なる設定によって異なります。
フォームのサイズは、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
別のフォームのサイズを変更する
フォームを参照する変数を使用して、別のフォームの作成後に別のフォームのサイズを変更できます。 たとえば、 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 プロパティは、フォームの現在の場所を保持します。 どちらのプロパティもデザイナーを使用して設定できます。
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
プロパティが設定された内容に基づいています。
こちらも参照ください
.NET Desktop feedback