以反向顺序粘贴的表单元素

时间:2016-10-09 12:21:15

标签: winforms visual-studio-2012

我正在使用Visual Studio 2012中的表单。有多个标签从Label1Label10垂直排列。我需要在第一组标签旁边复制这些标签,以便我在第一组旁边有Label11Label20。但是,当我复制/粘贴表单元素时,它们会以相反的顺序垂直粘贴,即Label20前面的Label1Label19前面的Label2,我不会#39} ;当我粘贴表单元素时,我想让序列反转。

我记得当我在VS2015上试用它时工作正常,但现在我在VS2012上工作并且它没有按预期工作。根据Google搜索结果,这似乎不是一个常见问题。

1 个答案:

答案 0 :(得分:0)

这取决于复制的控件的z-Index。 如果您使用VS设计器向InitializeComponent()中的表单添加2个新标签,则为以下代码:

this.Controls.Add(this.label2);
this.Controls.Add(this.label1);

如果您复制并粘贴它们,将导致:

this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);

其中label3是label2的副本,label4是label1的副本。

如果您修复了标签的z-Index(在设计器中右键单击它们并使用'置于前面' /'发送回来')它将变为:

this.Controls.Add(this.label1);
this.Controls.Add(this.label2);

现在,当您复制并粘贴它们时,您将获得:

this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.label1);
this.Controls.Add(this.label2);

其中label3是label1的副本,label4是label2的副本。

顺便说一句,这在VS2010,VS2012和VS2015

中的表现完全相同