SplitContainerを使用すると、フォームを2つの領域に分割できます。方向を水平に変更すると、2つの領域が得られます.1つは画面の上から始まり、もう1つはもう一方の面から始まります。今、あなたは、パネルの各の最小サイズを定義することができます
SplitContainer.Panel1MinSize = Convert.ToInt32(0.6 * Form.ActiveForm.ClientSize.Height);
SplitContainer.Panel2MinSize = Convert.ToInt32(0.4 * Form.ActiveForm.ClientSize.Height);
これは、トップパネルには、クライアント領域の60%とその下の40%を取ることができます。フォーム上で自動的に60%ダウンします。次に、任意のコントロールをパネルに配置してパネルにドッキングすることができます。Control.Dock = DockStyle.(something)
他の方法は、基本的には位置とサイズを計算することです。
:今、あなたのように、コントロールのサイズと位置を設定することができ
int X = 0; // Leftmost
int Y = Convert.ToInt32(0.6 * Form.ClientSize.Height); // 60% from topmost point
:あなたはとダウンアプリ上Form.ClientSize.Width
としてクライアント領域の幅を取得し、60%の先頭X、Y位置することができます
Control.Size = new Size(Form.ClientSize.Width, Convert.ToInt32(0.4 * Form.ClientSize.Height)); Control.Location = new Point(0, Convert.ToInt32(0.6 * Form.ClientSize.Height);
だから、あなたがあなたの記事で書いたように行動するForm1
例label1
ためを強制したい場合は、1つの可能性は、このようになります:
private void Form1_Resize(object sender, EventArgs e)
{
label1.Size = new Size(this.ClientSize.Width, Convert.ToInt32(0.4 * this.ClientSize.Height));
label1.Location = new Point(0, Convert.ToInt32(0.6 * this.ClientSize.Height));
}
TableLayoutPanelを見てみましたか? – Tigran
フォームの40%を占めるパネル、またはスクリーンの40%を占めるフォーム? – DarkSquirrel42
パネルは40% –