我想重叠面板,以便每当我点击一个按钮某个面板将可见。Visual C#/ WinForms面板
但是做这个工作是非常棘手的,因为面板不重叠。
for ex。我有面板1和面板2:
我做面板2相同的面板1, 每当我地定位在相同的位置... 有时,面板2成为面板1中的一员,每当我设置面板1对真面板2的可见性也显示出来。
我想要的是两个面板重叠在一起。
“顺便说一句,我正在做一个垂直的标签,这就是为什么我认为,隐藏,取消隐藏面板可能是我的最好的办法。
是否有可能使面板相互重叠?
我想重叠面板,以便每当我点击一个按钮某个面板将可见。Visual C#/ WinForms面板
但是做这个工作是非常棘手的,因为面板不重叠。
for ex。我有面板1和面板2:
我做面板2相同的面板1, 每当我地定位在相同的位置... 有时,面板2成为面板1中的一员,每当我设置面板1对真面板2的可见性也显示出来。
我想要的是两个面板重叠在一起。
“顺便说一句,我正在做一个垂直的标签,这就是为什么我认为,隐藏,取消隐藏面板可能是我的最好的办法。
是否有可能使面板相互重叠?
设计师正在努力争取让他们重叠。您需要使用一些小技巧来阻止底部面板吸取重叠的面板。把它重叠的面板稍微偏向左上方,以便它们真正重叠。然后将代码添加到窗体构造函数中,将其放在正确的位置:
public Form1() {
InitializeComponent();
panel2.Location = panel1.Location;
panel2.Size = panel1.Size; // optional
}
另一种方法是使用View + Other Windows + Document Layout。您可以将内部面板拖放到外部容器(表单)。但是,您必须手动编辑位置属性。
它是绝对有可能有重叠的面板
你面临的问题是,GUI编辑器把你的面板当作容器(这是真的),只要你放置一个面板(包括其他面板) “嵌套”在此容器中。
要避免此行为,请首先放置一个面板并适当放置/调整大小。然后右键单击它并选择“锁定控件”。这将锁定所有当前的表单控件,并且您将能够将新控件(包括面板)直接放置在它们上方,而不用担心某些东西将被嵌套或以某种方式放置在现有容器内。
当然,你的控件可以重叠 - 只考虑订单或控制创作,这也将在表单定义它们的Z顺序 - 控制以后添加,后来绘制的,因此定位在那些之上较早加入。
编辑:不幸的是我没有我的回答完全正确。锁定面板并不能阻止他们完全吸入控制位置。但是在部分重叠的情况下,两个容器都是在相同的深度上创建的,所以在面板重叠的情况下不存在这个问题,正如问题中提到的那样。
如果Lock Controls以这种方式工作,那将会很不错。实际上,锁定的面板仍然会吸住重叠的面板。尝试一下。 –
谢谢!!!我看到这样的锁控制如何做:) :))顺便说一句,如何标记正确的答案为正确? –
@Hand Passant:嗯......我在发布我的答案之前检查了它,但现在我发现有时它不起作用。无论如何,只有将面板完全置于现有容器内时,面板才会被吸起来,重叠仍然是可能的。但我会纠正我的回答 –
小组有一个名为位置的属性,您可以根据需要进行修改。只要你设法放置你的面板,使其得到正确的父母,你可以通过稍后改变位置属性来改变位置。真的不需要将设计代码放入构造函数或其他任何东西中。
并把在正确的父面板,只是有家长选择并双击面板控件工具栏上,而不是手动拖动它到表单中。真的没有必要试图与这个设计师对抗。
+1:这是我总是隐藏*一个面板后面的另一个面板,当我不想有不同的'UserControl'选项实例的麻烦。如果有一种设计友好的重叠面板的方式会很好,就像隐藏的选项卡一样。 – IAbstract
@IAbstract - 检查此:http://stackoverflow.com/questions/2340566/creating-wizards-for-windows-forms-in-c/2342320#2342320 –