.net 显示/隐藏WinForm的详细信息

.net 显示/隐藏WinForm的详细信息,.net,winforms,layout,.net,Winforms,Layout,我正在创建一个WinForm应用程序(.net3.5),其中显示一些客户端详细信息。我的问题是我们有一个与地址相关的方向字段。为了节省空间,我想有方向隐藏,直到用户“希望”看到他们。我想要的方法是用“手风琴”般的方式来演示方向。 我想我也可以用一个隐藏的字段和BringToFront()来实现这一点(这样会更好) 有人能为手风琴风格提供一些指导吗? 有什么东西已经存在了吗? 我需要考虑什么特别的事情吗? 在编码我自己的行为;我会把所有的东西都往下移然后再往上移吗 谢谢 我认为您应该将相关控件分组

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

有人能为手风琴风格提供一些指导吗?
有什么东西已经存在了吗?
我需要考虑什么特别的事情吗?
在编码我自己的行为;我会把所有的东西都往下移然后再往上移吗


谢谢

我认为您应该将相关控件分组到面板中,将它们与表单的顶部/底部对齐,然后在用户单击“更多详细信息>>”时以编程方式显示/隐藏相应的面板/“如果控件可以自由放置,那么是的-您必须向上或向下移动对象。通过将相关控件组封装到面板中,可以减少工作量:然后只需移动面板即可。如果面板是固定的(例如,“顶部”)-则只需隐藏/显示面板,所有内容都应自动就位。

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

当我需要这种行为时,我发现
TableLayoutPanel
非常有用。如果保存可展开内容,可以将行和列设置为自动大小-这样,当隐藏内容时,行将折叠

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


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

我喜欢这个方法,但是还有另外一个步骤吗?作为测试,我创建了一个3行2列的表。将中间行设置为“自动调整大小”,并将其包含的项设置为“可见”=false。它并没有像我预料的那样把那一排挤成一团。谢谢我已经更新了我的回复。重要的部分是将一行设置为百分比,以便它窃取自动调整大小的行的空间。此外,“自动大小”行中的所有内容都必须隐藏才能正常工作(除非另一列中的内容也被隐藏),否则在WinForms designer中更改中间项的Visible属性不会显示任何更改-更改发生在运行时。