【发布时间】:2011-12-23 03:35:08
【问题描述】:
我正在向 FlowLayoutpanel 控件动态添加控件。我添加到 flowlayoutpanel 的控件是包含两个控件的面板:一个不同大小的标签和一个固定大小的组合框。
问题在于标签和组合框在其包含面板中水平显示(我认为)。组合框被剪裁,几乎看不到。我尝试将每个面板的 Autosize 属性设置为 true,但这没有帮助。
有没有办法在面板中从上到下布局控件(堆叠它们)?流程布局面板可能是问题吗?
感谢您的帮助!
private void PopulateQuestionFlowPanel()
{
foreach (var question in _viewModel.Questions)
{
//build question label
var questionLabel = new Label();
questionLabel.Text = question.Text;
questionLabel.Tag = question.Id;
//build answer combobox
var answerCombo = CreateQuestionComboBox(question);
//put question and answer into panel
var controlPanel = new Panel();
controlPanel.Tag = question.Id;
controlPanel.AutoSize = true;
controlPanel.Controls.Add(questionLabel);
controlPanel.Controls.Add(answerCombo);
//add panels to flowpanel
questionPanel.Controls.Add(controlPanel);
}
}
【问题讨论】:
-
面板控件不提供自动布局。设置标签和组合的位置和大小属性。或使用用户控件。或者先在设计器中进行这项工作,然后查看设计器生成的代码以使其正确。
-
谢谢.. 我认为用户控件是个好主意
-
@HansPassant 用户控制解决方案运行良好。如果您添加答案,我会选择它。
-
@Nick:你能分享代码吗?你是如何制作用户控件的