有序的用户控件列表(添加和删除)

时间:2013-03-17 14:31:35

标签: c# winforms user-controls event-handling

某些背景

我正在创建一个允许用户创建基本搁架安排的应用程序,我希望创建一个代表搁置块(一组架子)的接口,按顺序(从左到右)彼此相邻,并允许用户编辑他们的细节。 每个街区都有一系列细节,如订单,名称,宽度,高度和货架数量。

要求

我希望界面具有(最多20个)用户控件的水平滚动列表。每个用户控件都代表一个块的详细信息,其中包含要编辑这些详细信息的基本表单。

用户应该能够按下用户控件中的一个按钮,删除它并重新排序其他块,并将块添加到列表的末尾。

我的问题

如何维护这些“shelf block”用户控件的有序列表,并让表单按下任何控件中的删除按钮,导致删除该按钮并重新排序列表?任何帮助都会很棒。

截图

我刚刚开始编程界面,所以我只能快速模拟我想要的界面:

enter image description here

基本的,我希望它能让你知道我在寻找什么。

2 个答案:

答案 0 :(得分:0)

您可以使用BindingList来存储您的积木。 BindingList将通知UI控件(例如ListBox)数据已被改变,例如正被删除的块。然后,UI将通过从ListBox中删除块来反映这一点。如果您熟悉WPF / Silverlight数据绑定,这与ObservableCollection列表类似,但不完全相同(如果您的目标是.NET 4,我相信您可以使用ObserverableCollections在WinForm中没有太多麻烦,但其他人可能会澄清这一点。

或者,您可以使用BindingSource而不是直接使用BindingList

答案 1 :(得分:0)

如何在表单上放置隐藏的网格控件 然后,您只需使用所需数据向网格添加/删除行 一切都保持有序。这里的一个优点是 出于调试目的,您始终可以看到网格可见 所有数据都很快。