首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual C#/WinForms面板

Visual C#/WinForms面板
EN

Stack Overflow用户
提问于 2011-09-10 21:37:29
回答 3查看 3.8K关注 0票数 3

我正在尝试重叠面板,以便每当我单击按钮时,都会看到某个面板。

然而,做这项工作是非常棘手的,因为面板不重叠。

对于ex。我有面板1和面板2:

我使面板2与面板1相同,只要我将它们放置在相同的位置...有时,面板2会成为面板1的成员,每当我将面板1的可见性设置为true时,面板2也会出现。

我想要的是两个面板相互重叠。

“顺便说一句,我正在制作一个垂直的标签,这就是为什么我认为隐藏,取消隐藏面板可能是我最好的方法。

有没有可能让这些面板相互重叠?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-10 22:08:14

设计师正在与你抗争,你会让它们重叠。你需要使用一个小技巧来阻止底部的面板吸收重叠的面板。把它重叠的面板有点偏向左上角,这样他们才能真正重叠。然后通过向表单构造函数添加代码来将其放在正确的位置:

代码语言:javascript
复制
    public Form1() {
        InitializeComponent();
        panel2.Location = panel1.Location;
        panel2.Size = panel1.Size;  // optional
    }

另一种方法是使用View + Other Windows + Document布局。您可以将内部面板拖放到外部容器(窗体)。但是,您必须手动编辑Location属性。

票数 4
EN

Stack Overflow用户

发布于 2011-09-10 21:45:40

完全有可能会有重叠的面板。

您面临的问题是,GUI编辑器将您的面板视为容器(这是真的),只要您将某些东西(包括其他面板)放在一个面板中,它就会“嵌套”在这个容器中。

为了避免这种行为,首先放置一个面板,并适当地定位/调整它的大小。然后右击它并选择“锁定控件”。这将锁定所有当前的表单控件,您将能够将新控件--包括面板--直接放在这些控件上,而不必担心某些内容会被嵌套或以某种方式放置在现有容器中。

当然,您的控件可以重叠--只考虑顺序或控件创建,这也将定义它们在表单中的z顺序--稍后添加的控件和稍后绘制的控件,因此位于先前添加的控件之上。

编辑:不幸的是,我的答案并不完全正确。锁定面板并不能阻止它们完全吸收其中的控件位置。但在部分重叠的情况下,两个容器都是在相同的深度级别上创建的,因此在面板重叠的情况下不存在问题,正如问题中所问的那样。

票数 0
EN

Stack Overflow用户

发布于 2011-09-10 22:45:18

该面板有一个名为Location的属性,您可以根据需要对其进行修改。只要设法放置面板,使其具有正确的父级,就可以在以后通过更改Location属性来更改位置。真的没有必要将设计代码放入构造函数或类似的东西中。

要将面板放在正确的父级中,只需选择父级并双击工具栏中的panel控件,而不是手动将其拖动到窗体中。在这一点上,真的没有必要试图与设计师抗争。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7372060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档