【问题标题】:Resize parent control from child's resize event从孩子的调整大小事件调整父控件的大小
【发布时间】:2012-01-10 14:43:22
【问题描述】:

我开始为我公司的一个应用程序更新 UI,但遇到了一个棘手的问题。父控件包含多个面板,每个面板都可以根据用户输入打开或关闭。

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

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

我相信我做错了,但 MSDN 并没有多大帮助。感谢您的所有帮助。

【问题讨论】:

  • 你肯定不想使用 Dock,这会强制控件跟随父控件的大小。父级应该有 AutoSize = True 和 AutoSizeMode = GrowAndShrink 所以它遵循子控件。
  • 我希望我能...我正在使用 3 年前发布的 Telerik 控件,该控件停靠在 RadGroupBox 内。显然它不支持AutoSizeMode。我等不及我们终于要重建这东西了。
  • 我确实接受了您的建议并摆脱了码头。即使没有AutoSizeMode,效果也更好。

标签: vb.net winforms


【解决方案1】:

试试ChildControl.Resize 事件。

我的答案是 C#。但它可能会起作用。

【讨论】:

  • 我之前应该提到过这一点,但我尝试从ParentControl.vb 调用ChildControl.Resize ChildControl.LayoutChildControl.SizeChanged 事件
  • @DrFeelgood “当我向 ChildControl 添加高度时...” - 如果它停靠在 Fill 上,您为什么要这样做?也许你应该先把它拆开。 label1.Dock = DockStyle.None; 在 C# 中。
  • @DrFeelgood 我刚刚Dock在表单中添加了一个标签,Resize 事件 确实 触发了,但 Height 保持不变(因为它已停靠,我假设。)
  • 我让它工作了,不管出于什么原因SizeChanging 之前没有工作,但在一些新的构建之后它确实工作了。给您添麻烦了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 2012-05-17
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 2011-11-10
相关资源
最近更新 更多