这种情况经常发生:我布置了很多控件,我决定将它们放在一个面板中,不管出于什么原因--也许是为了在不影响其他控件的情况下同时禁用它们,或者隔离一些单选按钮等等。
我发现在“我的控件下面”添加一个System.Windows.Forms.Panel是一个很麻烦的操作。这通常涉及调整父控件或窗体的大小,以便我可以将面板添加到与即将占用面板的控件集合相邻的临时空间中,然后将控件拖到面板上,然后将父控件/窗体大小设置为以前的大小。
通常,我在各种控件上以不同的方式设置了锚,这样就不会简单地调整父控件的大小,而不需要仔细调整控件的布局,使其变得一团糟。
对于如此简单的操作来说,这显然是一个乏味的过程。这样做是否有VS技巧(除了手工编辑设计器生成的文件外,这意味着我必须手动选择我想要重新命名的控件)?
发布于 2018-02-19 05:49:14
马特有一个很好的答案,但这可能会容易一些。
在窗体上放置一个面板,并将Dock设置为full。您将无法看到任何您的控件。然后打开表单的Document Outline。将每个控件拖放到Panel1上。每个控制都会在你想要的地方降落。现在,如果您愿意,只需设置Panel1.Disabled = true,就可以禁用面板中的所有控件。
如果有您不希望作为面板一部分的控件。选择Document Outline中的控件并选择Bring to Front。此控件将是可见的,不受设置面板启用属性的影响。
发布于 2019-10-12 12:49:28
这种情况偶尔也会发生在我身上,我改变主意,希望现有的控件现在位于面板(或其他一些container...GroupBox、FlowLayout等)中。
在大多数情况下,Microsoft提供的答案对我很有用,并在这里记录了:将现有控件重新分配给其他父控件。
不是将容器控件拖到窗体上,而是在现有控件周围“绘制”容器控件的轮廓,然后容器将抓取现有控件并使它们成为子控件。
步骤:
就这样。现有控件现在应该是容器的子控件。我知道它适用于VS 2015和更新版本,但我猜在此之前至少有几个版本可以使用它。
https://stackoverflow.com/questions/23955908
复制相似问题