私は.NET 2.0でアプリケーションを作成していますが、私はWinFormsからFlowLayoutPanel
の機能が必要です。CF.NETのFlowLayoutPanel
/// <summary>
/// Flowable layout panel
/// </summary>
public partial class FlowLayoutPanel : Panel
{
public FlowLayoutPanel()
{
InitializeComponent();
}
/// <summary>
/// Flow the layout of the panel. Required before presentation.
/// </summary>
public void Layout()
{
int top = 0;
// Set control position
foreach (Control ctrl in this.Controls)
{
ctrl.Top = top;
// Account for the scrollbar
ctrl.Width = this.Width - 17;
top += ctrl.Height;
}
}
}
パネルは(私の場合は、動的に生成されたタブページ)フォームに追加され、その後、私は追加します。これは私が(ほとんどのラベル付き)今使っている私はそれを思い付いたコードです次のようなフォームのコードビューのコントロール:
panel.Controls.Add(new Label() { Text = "Item name", Font = boldTahoma });
panel.Controls.Add(new Label() { Text = item.ItemName });
panel.Controls.Add(new Label() { Text = "Category", Font = boldTahoma });
panel.Controls.Add(new Label() { Text = item.Category });
panel.Controls.Add(new Label() { Text = "Quantity", Font = boldTahoma });
panel.Controls.Add(new Label() { Text = item.Quantity });
panel.Layout();
私は2つの質問があると思います。それは動作しますが、これを行うには良い方法があります(特に、毎回Layout()
に電話する必要はありません)。そうすれば、ラベルを自動高さにすることができますか?ありがとう。