将用户控件添加到 GroupBox 会更改用户控件在 WinForms 中的布局
Adding user control to GroupBox changes the user control's layout in WinForms
我有一个带有 GroupBox
的 WinForms 应用程序。我设计了一个用户控件,它将一堆文本框和其他控件组合在一起,以便我可以对它们应用一些自定义逻辑。用户控件如下所示:
我想将此用户控件放在我的 GroupBox
中,但是这样做最终会影响我的用户控件中控件的布局(见下文)。
如您所见,我的文本框都按照我希望的方式展开并调整了大小。如果我将此控件直接放在主窗体或 Panel
中(而不是 GroupBox
中),布局将保持不变,但是当我将它放在 GroupBox
中时,一切都会变得混乱.有办法解决这个问题吗?
在这两种情况下,用户控件的大小似乎不同。确保它在组框中的大小与直接放在窗体上时的大小相同。如果您使用过像 FlowLayoutPanel
或 TableLayoutPanel
这样的布局控件,这可能很重要。
另请注意,如果未明确设置,winforms 控件会从其父级继承属性。例如,如果您没有设置用户控件及其文本框的字体 属性,那么将从组框中获取这些字体。
最终对我有用的是制作一个单独的 class MyGroupBox
,它扩展了 GroupBox
。 class 是空的,但我将表单上的 GroupBox
转换为这个并将用户控件放在里面,这解决了问题。
我有一个带有 GroupBox
的 WinForms 应用程序。我设计了一个用户控件,它将一堆文本框和其他控件组合在一起,以便我可以对它们应用一些自定义逻辑。用户控件如下所示:
我想将此用户控件放在我的 GroupBox
中,但是这样做最终会影响我的用户控件中控件的布局(见下文)。
如您所见,我的文本框都按照我希望的方式展开并调整了大小。如果我将此控件直接放在主窗体或 Panel
中(而不是 GroupBox
中),布局将保持不变,但是当我将它放在 GroupBox
中时,一切都会变得混乱.有办法解决这个问题吗?
在这两种情况下,用户控件的大小似乎不同。确保它在组框中的大小与直接放在窗体上时的大小相同。如果您使用过像 FlowLayoutPanel
或 TableLayoutPanel
这样的布局控件,这可能很重要。
另请注意,如果未明确设置,winforms 控件会从其父级继承属性。例如,如果您没有设置用户控件及其文本框的字体 属性,那么将从组框中获取这些字体。
最终对我有用的是制作一个单独的 class MyGroupBox
,它扩展了 GroupBox
。 class 是空的,但我将表单上的 GroupBox
转换为这个并将用户控件放在里面,这解决了问题。