Windowsフォームアプリケーションにいくつかのパネルがあり、それらは2列、最大4行でソートされているため、最大8パネルです。すべてのパネルに含まれる要素の数は実行中に変化するため、モニターの場所を無駄にしないように、すべての要素を自動サイズに設定しました。問題は、最初の 1 つが縮小したときに他の 3 つが少し上がって、それらの間にあまりスペースがないようにする方法など、それらを正しく配置する方法がわからないことです。
1 に答える
2
TableLayoutPanel
またはFlowLayoutPanel
(または場合によっては)を使用してみてくださいSplitContainer
。これらはすべて、この種のタスクに非常に役立ちます。それらはツールボックスのセクションContainers
にあります。パネルの余白を適切に設定することで、適切な距離を保つことができます。はTableLayoutPanel
、行と列のサイズを変更するためのさまざまなオプションを提供します(絶対サイズまたはパーセントサイズまたは自動)。また、パネルとコントロールのDock
またはAnchor
プロパティを操作することにより、コントロールのサイズを変更したり、コントロールを追加および削除したりするときに動的な動作を実現できます。
MinimumSize
コントロールのプロパティとプロパティを設定する必要がある場合もありMaximumSize
ます。
このようなコントロールを追加できますTableLayoutPanel
int count = tableLayoutPanel1.Controls.Count;
int newColumn = count % 2;
int newRow = count / 2;
if (newRow >= tableLayoutPanel1.RowCount) {
tableLayoutPanel1.RowCount++;
// Set appropriate row style
tableLayoutPanel1.RowStyles.Add(new RowStyle { SizeType = SizeType.AutoSize });
}
var newControl = new Button { Dock = DockStyle.Fill };
tableLayoutPanel1.Controls.Add(newControl, newColumn, newRow);
于 2012-12-08T20:31:41.010 に答える