显示/隐藏详细信息WinForm

时间:2009-02-02 21:50:56

标签: .net winforms layout

我正在创建一个WinForm应用程序(.net3.5),我在其中显示一些客户端详细信息。我的问题是我们有一个与地址相关的路线字段。为了节省空间,我希望隐藏方向,直到用户“希望”看到它们。我想要的方法是有一个“手风琴”,就像指示一样 我想我也可以使用隐藏字段和 BringToFront()(这会更好)。

有人可以提供有关手风琴风格的指导吗?
有什么东西已经存在吗? 我是否需要考虑任何特殊因素? 在编码我自己的行为;我会把所有东西都放下来,然后再备份等等吗?

谢谢!

4 个答案:

答案 0 :(得分:6)

您所谈论的概念称为Progressive Disclosure。 Microsoft在UX指南中提供了一些关于这些类型控件的优秀提示。

答案 1 :(得分:4)

当我需要这种行为时,我发现TableLayoutPanel很有用。如果保留可扩展内容,则可以将行和列设置为自动调整大小 - 这样,当您隐藏内容时,行会折叠。

如果您有另一个控件(例如按钮),则可以使用它来控制可扩展内容的隐藏状态。

例如,创建一个3行,1列表。在顶部添加固定大小的按钮,在中间添加自动调整大小的元素。将最后一行设置为百分比大小(您需要这样做,以便在中间行大小为零时占用剩余空间)。然后使用您的按钮更改中间行中任何内容的可见属性。

答案 2 :(得分:2)

我认为您希望将相关控件组合在一起,将它们对齐到表单的顶部/底部,然后在用户单击“更多详细信息>>”时以编程方式显示/隐藏相应的面板/“<< Less Detail”。

编辑:我不知道这个特定功能的辅助控件,除了用于分组控件的面板以及一次显示/隐藏它们。

答案 3 :(得分:1)

如果控件是自由放置的,那么是 - 你必须向上或向下移动。您可以通过将相关控件组封装到面板中来减少工作量:然后您只需移动面板即可。如果面板停靠(例如,“顶部”) - 那么只需隐藏/显示面板,一切都应自动落到位置。