Winforms 如何取回丢失的复选框(在将它们从窗体移到面板后)?

Winforms 如何取回丢失的复选框(在将它们从窗体移到面板后)?,winforms,panel,z-order,bringtofront,Winforms,Panel,Z Order,Bringtofront,我在表格上放了几个面板。当我在设计器中单击中心面板时,主窗体是实际选中的,即使面板应位于其顶部,并且主窗体在设计器中不应容易单击 顺便说一下,单击表单上的其他面板不会出现此问题。所有其他面板都位于表单顶部 由于在我希望单击面板时单击了表单,在成功地在面板顶部添加了一些标签后,我将几个控件添加到我认为是面板的控件中,因此所有这些控件复选框都会出现在表单上/面板下方,因此在运行时不会显示: 当我意识到控件在窗体上而不是在面板上时,我从属性浏览器中选择窗体,一次选中所有复选框,然后剪切它们的组 然后,

我在表格上放了几个面板。当我在设计器中单击中心面板时,主窗体是实际选中的,即使面板应位于其顶部,并且主窗体在设计器中不应容易单击

顺便说一下,单击表单上的其他面板不会出现此问题。所有其他面板都位于表单顶部

由于在我希望单击面板时单击了表单,在成功地在面板顶部添加了一些标签后,我将几个控件添加到我认为是面板的控件中,因此所有这些控件复选框都会出现在表单上/面板下方,因此在运行时不会显示:

当我意识到控件在窗体上而不是在面板上时,我从属性浏览器中选择窗体,一次选中所有复选框,然后剪切它们的组

然后,我从属性浏览器中选择了主面板,并将这些剪切复选框粘贴到面板上。这有点奏效,但我所看到的是他们的大纲都是一起挑选出来的。我使用Ctrl+向上箭头在面板上移动它们,每次移动一点,直到它们都接近它们所属的顶部。但后来他们就消失了

从现在起,我将确保右键单击面板并选择BringToFront,然后再向该区域添加任何控件;不过现在,我在表单或面板上都看不到复选框。如何将它们取回并放置在面板上,并防止窗体出现在面板顶部,除非我从属性浏览器中选择它

复选框仍然存在,尽管其名称已从ckbxAll等更改为Checkbox1等。它们显示在Form1Designer.cs的正确面板上,但不显示。以下是他们在那里的表现:

// panelMain
// 
this.panelMain.BackColor = System.Drawing.Color.White;
this.panelMain.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panelMain.Controls.Add(this.checkBox21);
this.panelMain.Controls.Add(this.checkBox20);
this.panelMain.Controls.Add(this.checkBox19);
this.panelMain.Controls.Add(this.checkBox18);
this.panelMain.Controls.Add(this.checkBox17);
this.panelMain.Controls.Add(this.checkBox16);
this.panelMain.Controls.Add(this.checkBox15);
this.panelMain.Controls.Add(this.checkBox14);
this.panelMain.Controls.Add(this.checkBox13);
this.panelMain.Controls.Add(this.checkBox12);
this.panelMain.Controls.Add(this.checkBox11);
this.panelMain.Controls.Add(this.checkBox10);
this.panelMain.Controls.Add(this.checkBox9);
this.panelMain.Controls.Add(this.checkBox8);
this.panelMain.Controls.Add(this.checkBox7);
this.panelMain.Controls.Add(this.checkBox6);
this.panelMain.Controls.Add(this.checkBox5);
this.panelMain.Controls.Add(this.checkBox4);
this.panelMain.Controls.Add(this.checkBox3);
this.panelMain.Controls.Add(this.checkBox2);
this.panelMain.Controls.Add(this.checkBox1);
this.panelMain.Location = new System.Drawing.Point(160, 0);
this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(639, 740);
this.panelMain.TabIndex = 2;
// 
使现代化 原来它们就在那里,但现在除了我点击它们的轮廓外,它们是不可见的:


看起来您已将这些控件粘贴到另一个容器中。打开Designer.cs文件,查看哪个容器是实际的父容器。-尝试使用不带标题的TabControl在面板之间切换,以便在设计时和运行时具有相同的简化布局。-编辑后:显示的布局不反映操作说明:剪切和粘贴控件时,原始名称不会丢失。你失去的是事件处理程序仍然在那里,但不是有线的,但这正是发生的事情。我有21个自定义命名的复选框,现在它们都恢复为默认的号码名称。我添加了一个更新-它们确实存在,但除了它们自己的名字之外是不可见的outlines@B.ClayShannon如果不检查来源,就很难看到发生了什么。你能为任何一个复选框及其属性添加源代码吗?@DipenShah:谢谢,但我太恼火了,以至于我希望点击的是面板,而我点击的表单与其他任何面板都没有问题,因此,我只是删除了中间的面板,并将这些复选框添加回表单。