在Windows.Forms中创建控件列表

时间:2010-12-24 12:46:36

标签: c# winforms

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

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

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

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

3 个答案:

答案 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

相关问题