将用户控件添加到 GroupBox 会更改用户控件在 WinForms 中的布局

Adding user control to GroupBox changes the user control's layout in WinForms

我有一个带有 GroupBox 的 WinForms 应用程序。我设计了一个用户控件,它将一堆文本框和其他控件组合在一起,以便我可以对它们应用一些自定义逻辑。用户控件如下所示:

我想将此用户控件放在我的 GroupBox 中,但是这样做最终会影响我的用户控件中控件的布局(见下文)。

如您所见,我的文本框都按照我希望的方式展开并调整了大小。如果我将此控件直接放在主窗体或 Panel 中(而不是 GroupBox 中),布局将保持不变,但是当我将它放在 GroupBox 中时,一切都会变得混乱.有办法解决这个问题吗?

在这两种情况下,用户控件的大小似乎不同。确保它在组框中的大小与直接放在窗体上时的大小相同。如果您使用过像 FlowLayoutPanelTableLayoutPanel 这样的布局控件,这可能很重要。

另请注意,如果未明确设置,winforms 控件会从其父级继承属性。例如,如果您没有设置用户控件及其文本框的字体 属性,那么将从组框中获取这些字体。

最终对我有用的是制作一个单独的 class MyGroupBox,它扩展了 GroupBox。 class 是空的,但我将表单上的 GroupBox 转换为这个并将用户控件放在里面,这解决了问题。