在Windows.Forms中创建控件列表

lei*_*ren 10 c# winforms

我已经决定要有一个带有"复杂上下文"的列表,即自定义控件.(目标看起来像一个好友列表,包括照片,状态图标,文本和"开始聊天按钮".)

但我喜欢它表现为列表:滚动条,选择多个项目的可能性等.

当我一直在查看ListView和ListBox时,我只看到我可以添加文本和图标,但不能添加任意控件.我不知道这是怎么做到的?

或者我应该使用ListView/ListBox以外的东西?

Lit*_*ian 9

用一个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);
}
Run Code Online (Sandbox Code Playgroud)

确保面板足够大,以包含控件和滚动条.我不确定你的选择要求.


Ada*_*rth 5

Visual Basic Power Pack中有一个名为Data Repeater的控件.

这允许您将自己的控件与成为转发器中项目的数据容器相关联.

我曾经使用过它,我相信它并不完全直观,但是一旦你了解它,它就会非常有用.它还可以节省您自己的控制权.

到目前为止,它是目前最接近Windows窗体中任意重复控件的想法.