如何在Winforms中创建可折叠面板作为自定义控件?

时间:2009-10-05 17:11:57

标签: c# .net gdi+ winforms

我能想到的最接近的是GroupBox控件,它在顶部有一个自定义绘图,用于识别面板。

可行吗?我已经完成了独立的自定义控件,如按钮,滑块,颜色选择器,但不完全确定这种绘图是否可以在GroupBox上完成?

我需要分组GroupBox或TabPanel。

我可以使用网络上的替代品吗?

在我开始做之前,先探索替代方案。

3 个答案:

答案 0 :(得分:4)

我们使用的一种技术是创建多个面板停靠在框架顶部并将其高度设置为零。然后,当我们想要显示面板时,我们正确设置其高度。 Winforms会自动回流其他面板以适应新面板。

您还可以创建一个定期计时器,每隔几百毫秒触发一次,将面板高度增加几个像素,直到达到完整尺寸。这会创建一个很好的面板扩展动画。

答案 1 :(得分:3)

了解其他人如何做到这一点。 Code Project有很多。尝试在那里搜索。

前一段时间我使用过这个并喜欢它:

Windows XP style Collapsible Panel Bar

答案 2 :(得分:1)

为什么不创建复合控件?有效的东西...... 2个面板或标签和面板或任何适合您需要的东西。绘制它并不是那么困难,但对于您期望的功能而言似乎过于复杂。我完全错过了这个标记吗?