8

使用 C# 2.0 实现动态表单控件的最佳方式是什么?

我需要为每个数据对象提供一组控件,所以我应该手动完成并在增加最高值的同时将它们布置好还是有更好的方法?

4

5 回答 5

8

您可以使用具有自动布局的面板,例如FlowLayoutPanelTableLayoutPanel

不幸的是,只有 2 个面板具有开箱即用的自动布局,但您可以创建自定义布局面板。

我建议您阅读以下文章:

如何:为数据输入创建可调整大小的 Windows 窗体

演练:为数据输入创建可调整大小的 Windows 窗体

另一种选择是使用 WPF(Windows Presentation Presentation)。
WPF 非常适合您的任务。
WPF 控件可以托管在 WinForms 应用程序中,因此您不必完全切换到它。

于 2008-09-04T11:43:29.247 回答
2

@Sam 我知道这个问题是关于 Windows 窗体的,但是您绝对应该开始查看 WPF。这种场景在 WPF 中使用 DataTemplates 和 TemplateSelectors非常容易。

于 2008-09-04T12:06:52.670 回答
1

“动态”是什么意思?为数据集中的每个数据行提供一组新的、固定的控件?然后使用UserControl包含您的控件的。

还是您的意思是,根据您的数据布局,您希望为用户提供一组自定义控件,例如,TextBox每列一个控件?

于 2008-09-04T11:41:34.180 回答
1

是的,我发现手动布局控件(将它们的 Top 属性增加控件的高度加上边距)是相当有效的。

另一种方法是将控件放置在面板中,并将 Dock 设置为顶部,以便每个连续的面板停靠在上面的面板上。然后,您可以切换各个面板的可见性,下面的控件将迅速填充可用空间。请注意,这可能有点不可预测:显示停靠的隐藏面板有时会改变其相对于其他停靠控件的位置。

于 2008-09-04T11:42:23.133 回答
1
于 2008-09-04T11:50:10.510 回答