我已经决定要有一个带有“复杂上下文”的列表,即自定义控件。 (目标看起来像一个好友列表,包括照片,状态图标,文本和“开始聊天按钮”。)
但我喜欢它表现为列表:滚动条,选择多个项目的可能性等。
当我查看ListView和ListBox时,我只看到我可以添加文本和图标,但不能添加任意控件。我不知道这是怎么做到的?
或者我应该使用除ListView / ListBox以外的其他东西吗?
答案 0 :(得分:7)
使用FlowLayoutPanel
。如果你想要垂直排列控件,滚动,请执行:
myFlowLayoutPanel.AutoScroll = true;
myFlowLayoutPanel.FlowDirection = FlowDirection.TopDown;
myFlowLayoutPanel.WrapContents = false; // Vertical rather than horizontal scrolling
foreach(Control myControl in myControls){
myFlowLayoutPanel.Controls.Add(myControl);
}
确保面板足够大,以包含控件和滚动条。我不确定你的选择要求。
答案 1 :(得分:5)
Visual Basic Power Pack中有一个名为the Data Repeater的控件。
这允许您将自己的控件与成为转发器中项目的数据容器相关联。
之前我曾经使用过它,我相信它不是完全直观的,但是一旦你了解它,它就会非常有用。它还可以节省您自己的控制权。
到目前为止,我目前最接近Windows窗体中任意重复控件的想法。
答案 2 :(得分:2)
在WPF中创建这将是相当简单的(虽然它将在Windows窗体中进行大量工作) - WPF旨在创建这样的丰富UI控件。如果您的应用的其余部分位于Windows窗体中,则可以托管WPF control in Windows Forms。