Windows窗体,创建动态可滚动面板

时间:2014-05-08 12:03:26

标签: c# forms user-interface controls

我左边有一个自定义控件如下图所示。我想创建另一个自定义控件,可以以编程方式动态地将这些控件中的更多或更少添加到自身,并允许用户滚动它们以查看"信息"在每个编辑框中。我想让它足够通用,如果我必须显示x个数据的信息,我可以通过编程方式"添加"更多这些控件到自定义控件并滚动它们。

enter image description here

我想我应该从Panel控件开始(这会照顾滚动条)吗?

如何添加/删除/跟踪我想要显示的编辑控件?

1 个答案:

答案 0 :(得分:1)

使用Panel控件(如您所猜测的那样)并将其AutoScroll属性设置为true(这会处理滚动条)。

如果您的内部控件是其他UserControl个对象,请在外部UserControl中保留它们的列表,并在堆栈底部动态添加它们:

var innerControl = new MyInnerUserControl();
innerControl.Top = _innerControls[_innerControls.Count-1].Bottom + 1;
_innerControls.Add(innerControl);

但是,如果您手动绘制内容,则应将面板的AutoScrollMinSize属性设置为内部内容的总大小。