私はVS 2015でWindowsフォームアプリケーションを書いています。フォーム間でコントロールをコピーする代わりに
私はラジオの選択に基づいて、変更したいフォームの一部を持っています。変更したい部分をPanelコントロールに配置します。
私の現在の計画は、別のフォームに4つのコントロールレイアウトを作成することでした。私はForm2を作成し、それに4つのパネルを作成しました。ラジオボタンをクリックすると、Form2のパネルにあるものをForm1のPanelにコピーしたいと思います。
現在、各ラジオボタンをクリックすると、Form2パネルのコントロールが表示されなくなります。彼らはおそらく移動されて、コピーされていません。私が最初にクリックしたものはフォーム1に表示されますが、他は最初のものの後には表示されません。私はForm2(RefPanels)を全く変更したくありません。私はそこにあるものをForm1にコピーしたいだけです。ここに私が試みているコードがあります。
//RefPanels is my Form2 instance.
public Form2 RefPanels = new Form2();
//Each Radiobutton has something similar to this.
RadioBtn1_CheckChanged(...)
{
Control[] cArray = new Control[20];
RefPanels.Panel1.Controls.CopyTo(cArray, 0);
foreach (Control c in cArray)
{
Form1_Destination_Panel.Controls.Add(c);
}
}
私はこれについてすべて間違っていると確信しています。手伝ってくれますか?
Controls.CopyToは、コントロールへの参照のみをコピーするディープコピーを実行していません。それが彼らが動いている理由です - それらをデスティネーションパネルに追加すると、既存のコントロールを追加しています。 – Kateract