我知道我可以使用listBox.Controls.Add(new Button());
,但我需要将几个控件添加为行,最好是从列表中添加并将其设置为数据源。我尝试了以下但没有成功:
var list = new List<Control>();
list.Add(new Button());
list.Add(new Button());
list.Add(new Button());
listBox1.DataSource = list;
我决定改用flowLayoutPanel。这似乎是目前最好的选择。
ListBox 并非设计为容器控件。它的滚动条不能滚动控件。通常这是您要避免的事情,将大量控件放入,例如,AutoScroll 属性为 True 的 Panel 会使您的 UI 无响应。控件是昂贵的对象。
我建议您使用 StackPanel 而不是您也可以在此处阅读的 Listbox ,您必须在列表和 StackPanel 中添加 Button 对象,如下所示:
Button b = new Button();
list.Add(b);
stackPanel.Children.Add(b);
因此您可以通过列表使用堆栈面板中的按钮