以相反顺序粘贴表单元素

问题描述 投票:0回答:2

我正在 Visual Studio 2012 中处理一个表单。有多个标签,范围从

Label1
Label10
垂直排列。我需要将这些标签复制到第一组标签旁边,以便第一组标签旁边有
Label11
Label20
。但是,当我复制/粘贴表单元素时,它们会以相反的顺序垂直粘贴,即
Label20
位于
Label1
前面,
Label19
位于
Label2
前面,我不希望当我粘贴表单元素。

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

winforms visual-studio-2012
2个回答
0
投票

这取决于复制控件的 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 中的行为都是相同的


0
投票

如果您在表单上放置 3 个按钮并复制并粘贴它们,则粘贴后它们将以相反的顺序(例如,按钮 1、按钮 2、按钮 3)=(按钮 6、按钮 5、按钮 4),以便使它们按升序粘贴必须通过单击按钮 3 并选择“置于最前”、“按钮 2”并选择“置于最前”、“按钮 1”并选择“置于最前”来更改索引顺序;然后一次性全部复制然后粘贴,粘贴顺序为button4、button5、button6等。希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.