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

Mar*_*rkH 5 c# user-controls event-handling winforms

一些背景

我正在创建一个允许用户创建基本搁架安排的应用程序,我希望创建一个界面,它按顺序(从左到右)代表彼此相邻的搁架块(一组搁板),并允许用户编辑其细节.每个区块都有一系列细节,例如它的顺序,名称,宽度,高度和许多架子.

要求

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

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

我的问题

如何维护这些"shelf block"用户控件的有序列表,并让表单处理按下任​​何控件中的删除按钮,导致它被删除并重新排序列表?任何帮助都会很棒.

截图

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

在此输入图像描述

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

key*_*rdP 0

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

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