我正在 Visual Studio 2012 中处理一个表单。有多个标签,范围从
Label1
到 Label10
垂直排列。我需要将这些标签复制到第一组标签旁边,以便第一组标签旁边有 Label11
到 Label20
。但是,当我复制/粘贴表单元素时,它们会以相反的顺序垂直粘贴,即 Label20
位于 Label1
前面,Label19
位于 Label2
前面,我不希望当我粘贴表单元素。
我记得当我在 VS2015 上尝试时它工作正常,但现在我在 VS2012 上它并没有按预期工作。根据 Google 搜索结果,这似乎不是一个常见问题。
这取决于复制控件的 z-Index。 如果您使用 VS 设计器将 2 个新标签添加到
InitializeComponent()
中的表单中,则将是以下代码:
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 中的行为都是相同的
如果您在表单上放置 3 个按钮并复制并粘贴它们,则粘贴后它们将以相反的顺序(例如,按钮 1、按钮 2、按钮 3)=(按钮 6、按钮 5、按钮 4),以便使它们按升序粘贴必须通过单击按钮 3 并选择“置于最前”、“按钮 2”并选择“置于最前”、“按钮 1”并选择“置于最前”来更改索引顺序;然后一次性全部复制然后粘贴,粘贴顺序为button4、button5、button6等。希望这有帮助。