0

Windowsフォームアプリケーションにいくつかのパネルがあり、それらは2列、最大4行でソートされているため、最大8パネルです。すべてのパネルに含まれる要素の数は実行中に変化するため、モニターの場所を無駄にしないように、すべての要素を自動サイズに設定しました。問題は、最初の 1 つが縮小したときに他の 3 つが少し上がって、それらの間にあまりスペースがないようにする方法など、それらを正しく配置する方法がわからないことです。

4

1 に答える 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 に答える