2012-01-10 91 views
0

我开始更新我公司的一个应用程序的用户界面,我遇到了一个棘手的问题。父控件包含多个面板,每个面板可以根据用户输入打开或关闭。从孩子的调整大小事件调整父级控制

用户控件中的最后一个面板包含另一个用户控件,该控件根据切换开关调整大小。实质上,它“打开”了更多信息。

虽然子控件(ChildControl)停靠在父控件(ParentControl)内部填充,但当我将高度添加到ChildControl时,我无法获取ParentControl的高度以进行更新。目前我正在处理ParentControl中的ChildControl.Layout事件,但我似乎无法达到该代码。要调整ChildControl的大小,我在ChildControl.vb中调用Me.Height += 200

我相信我做错了,但MSDN没有太大的帮助。感谢任何和所有的帮助。

+2

您绝对不想使用Dock,这会强制控件遵循父级的大小。父级应具有AutoSize = True和AutoSizeMode = GrowAndShrink,以便它跟随子控件。 – 2012-01-10 17:37:21

+0

我希望我可以...我使用的是Telerik控件的3年前版本,并且控件停放在“RadGroupBox”内部。显然它不支持'AutoSizeMode'。我不能等到我们终于重建这个东西。 – EHorodyski 2012-01-10 20:36:16

+0

我确实采取了你的建议,摆脱了码头。工作得更好,即使没有AutoSizeMode。 – EHorodyski 2012-01-10 21:09:39

回答

1

尝试ChildControl.Resize事件。

我的答案是用C#。但它可能也是一样的。

+0

我应该提到这个,但我试着从ParentControl.vb调用'ChildControl.Resize'' ChildControl.Layout'和'ChildControl.SizeChanged'事件 – EHorodyski 2012-01-10 16:16:07

+0

@DrFeelgood“当我将高度添加到ChildControl ...”为什么你这样做,如果它停靠在'Fill'上?也许你应该先解开它。 'label1.Dock = DockStyle.None;'在C#中。 – ispiro 2012-01-10 16:28:53

+0

@DFeFeelgood @DrFeelgood我只是在一个窗体中放置了一个标签,并且'Resize'事件_did_ fire,但是'Height'保持不变(因为它是停靠的,我假设)。 – ispiro 2012-01-10 16:45:57

相关问题