Ich schreibe ein Windows Forms-Anwendung in VS 2015eine Steuerung zwischen Formen Kopieren bewegt er stattdessen
ich einen Teil der Form, die ich will, auf einer Funk Auswahl basierte ändern. Den Teil, den ich ändern möchte, lege ich in ein Panel-Steuerelement.
Mein aktueller Plan war, 4 Steuerlayouts auf einem anderen Formular zu erstellen. Ich habe Form2 erstellt und 4 Panels darauf erstellt. Ich möchte kopieren, was in diesen Panels von Form2 zu dem Panel in Form1 ist, wenn das Optionsfeld geklickt wird.
Derzeit, wenn ich auf jedes Optionsfeld klicke, verschwinden die Steuerelemente in Form2 Panel! Sie werden vielleicht bewegt, nicht kopiert. Das erste, auf das ich klicke, erscheint auf Form 1, aber die anderen nicht nach dem ersten. Ich möchte nicht, dass Form2 (RefPanels) überhaupt geändert wird. Ich möchte nur kopieren, was zu Form1 da ist. Hier ist der Code, den ich versuche.
//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);
}
}
Ich bin mir sicher, dass ich alles falsch mache. Kannst du helfen?
Controls.CopyTo führt keine tiefe Kopie durch und kopiert nur die Verweise auf die Steuerelemente. Deshalb bewegen sie sich - wenn Sie sie zum Ziel-Panel hinzufügen, fügen Sie das bestehende Steuerelement hinzu. – Kateract