Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不使用TableLayoutPanel的情况下并排排列控件?_C#_.net_Winforms - Fatal编程技术网

C# 如何在不使用TableLayoutPanel的情况下并排排列控件?

C# 如何在不使用TableLayoutPanel的情况下并排排列控件?,c#,.net,winforms,C#,.net,Winforms,我一直在使用TableLayoutPanel来安排控件。最近我发现TableLayoutPanel不支持可视继承。我现在正在从我的项目中删除TableLayoutPanel。然而,我不明白如何安排控制并排。到目前为止,我看到的是,我可以将控件的Dock属性设置为“Top”或“Bottom”,它们将按照添加到表单.controls集合的顺序堆叠在一起。问题是,我希望控件并排(水平)而不是相互重叠(垂直)。请注意,我想使用Dock属性,以便控件在用户调整窗体大小时自动调整大小。我不想要无法调整大小的

我一直在使用
TableLayoutPanel
来安排控件。最近我发现
TableLayoutPanel
不支持可视继承。我现在正在从我的项目中删除
TableLayoutPanel
。然而,我不明白如何安排控制并排。到目前为止,我看到的是,我可以将控件的
Dock
属性设置为“
Top
”或“
Bottom
”,它们将按照添加到
表单.controls
集合的顺序堆叠在一起。问题是,我希望控件并排(水平)而不是相互重叠(垂直)。请注意,我想使用
Dock
属性,以便控件在用户调整窗体大小时自动调整大小。我不想要无法调整大小的静态控件


我确实想要一个支持可视继承的解决方案。有许多控件不支持此功能,如下所述:

TableLayoutPanel
不支持继承,但其中的控件支持继承。表布局和继承是可能的,但根据您实际想要实现的内容,可能需要更多的工作才能将它们粘合在一起。您唯一真正做不到的是更改设计器中的内容。在代码中,所有属性都是可访问的;您可以设置其停靠模式、添加控件等。。因此,如果你想使用设计师进行布局,我想你真的必须放弃TLP至于使用Dock:我认为它不适合多个控件。我想你必须在表单resize中编写一个名为的布局函数。你可以通过添加几个面板来对一些控件进行分组并将它们锚定在那里,从而使你的生活更加轻松至于并排布局:您必须精确地定义您想要的调整大小行为(对于每个控件),因为有很多方法可以做到这一点。有些不应该生长,有些不应该生长等等。。