.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();
그래서 두 가지 질문이 있다고 가정합니다. 작동하지만 더 좋은 방법이 있습니다 (특히 Layout()
을 호출 할 필요가 없으므로 특히 그렇습니다). 그래서 라벨을 자동 높이로 만들 수있는 방법이 있습니까? 감사.