2016-10-09 14 views
1

私はVisual Studio 2012でフォームを作成しています。Label1からLabel10までの複数のラベルが縦に並べられています。これらのラベルを最初のラベルの隣にコピーして、Label11Label20のラベルを最初のセットの横にコピーする必要があります。しかし、フォームエレメントをコピー/貼り付けたときに、逆順に貼り付けた場合、Label1Label19の前にLabel2の前にLabel20が貼り付けられていますが、フォームエレメントを貼り付けたときにシーケンスが逆になることはありません。逆の順序で貼り付けられたフォーム要素

私はVS2015で試してみましたが、今はVS2012で動作していて、期待通りに動作しません。 Googleの検索結果に基づいて、これはよくある質問ではないようです。

+1

ですべて同じ動作をします。つまり、あなたはデフォルトからすべてのコントロールの名前を変更する必要があるため、問題ではありません。 'Label1'、' Label2'などの名前のコントロールを持つフォームは悪いフォームです。 – jmcilhinney

+0

私がそれらを選択した順序は、動作に影響を与えません。これらの要素の多くが存在し、数字を増やすデフォルトの名前は、私が計画したプログラミングロジックの目的を十分に果たすでしょう。しかし、私は、これを回避する方法がない場合、各要素の名前を手動で変更する必要があると思います。私は既にUpdate 5を適用しようとしましたが、これはそれに対処するかもしれないと考えていますが、そうではありません – user6944792

答えて

0

これは、コピーしたコントロールのzインデックスに依存します。あなたがInitializeComponent()でフォームにVSのデザイナーとの2つの新しいラベルを追加した場合 は、このコードになります:

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

コピーして貼り付けた場合、それはになります:

LABEL3がある
this.Controls.Add(this.label3); 
this.Controls.Add(this.label4); 
this.Controls.Add(this.label2); 
this.Controls.Add(this.label1); 

label2とlabel4のコピーはlabel1のコピーです。あなたは、ラベルのzインデックスを修正した場合

ことになるだろう(デザイナーでそれらを右クリックして、使用「フロントに持参」/「後ろに送る」):

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

を今、あなたがコピーして貼り付けるときに取得します:LABEL3はLABEL1とLabel4からのコピーである

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

がLABEL2のコピーです。

ところで、これはこれは単なる推測ですが、それはあなたがそれらを選択した順序に依存してもよいVS2010、VS2012とVS2015

+0

@ user6944792これを試しましたか?それはうまくいったのですか? –

関連する問題