【发布时间】:2014-07-14 16:48:30
【问题描述】:
我想要做的是展开和折叠我的 winform 中间。我知道这里有类似的问题,但没有一个真正能满足我的需要。我已经阅读了有关使用 FlowLayoutPanel 的信息,但我无法让它工作。
我想要实现的一个例子是:
我有我的 winform(示例)
当我单击button1 时,它应该隐藏中间的文本框并缩小表单以隐藏空间,反之亦然,当我单击button2 时。无论哪种方式,button3 都应保留在文本框显示或未显示的位置下方。
到目前为止,我的尝试要么只是隐藏文本框而不对表单做任何事情,要么缩小了很多。我目前一直在将AutoSize 设置为true 并将AutoSizeMode 设置为GrowAndShrink。
我见过可以执行此操作或类似操作的控件,但它们有箭头或小按钮来展开表单,我只需要按钮即可。
有没有简单的方法可以做到这一点?
任何帮助表示赞赏。
更新
我尝试将高度设置为 0 并按照建议隐藏文本框,但它只是折叠表单的右侧而不是中间。
【问题讨论】:
-
将height属性设为0并隐藏?使用您知道的高度从放置第三个按钮的位置的 y 坐标中减去,并从表单 y 大小中删除文本框的高度,以相应地缩小。只需在您想显示时重新添加它们
-
我最近写了一些类似的东西,已经在网上找到了几个例子。例如,查看codeproject.com/Articles/53318/… 或collapsiblepanel.codeplex.com/releases/view/25409。还有很多第三方控件可以做到这一点; DevExpress 有一个可折叠的面板控件。您可以从按钮模拟面板标题的单击事件(而不显示面板标题!)