Ich arbeite an Projekt WinForm-Anwendung. Ich versuche, ein Benutzersteuerelement zu einem Panel auf dem Hauptformular hinzuzufügen. Hier ist, was ich getan habe, ich erstellte eine öffentliche statische Methode auf dem Hauptformular, so dass ich es von überall aufrufen kann, ohne das Hauptformular instanziieren.Wie kann ich einem Panel auf dem Hauptformular ein UserControl hinzufügen?
Ich erhalte einen Kompilierungsfehler "Ein Objektverweis wird für ein nicht statisches Feld, Methode oder Eigenschaft benötigt".
Wenn ich die Methode als nicht-statisch das Übersetzungsfehler wird verschwunden sein schaffen, aber ich werde es nicht zu nennen Lage, ohne Aufgabe der Hauptform zu schaffen.
Was ich erreichen möchte ist in der Lage sein, jede Usercontrol im Panel ‚pnlContainer‘ zu öffnen auf meinem Hauptformular ‚frmMain‘.
Wenn die Haupt-Formular geladen Ich möchte die Methode aufrufen, ohne erneut das Hauptformular instanziieren. Zum Beispiel
public static void showUC(UserControl uc)
{
pnlContainer.Controls.Clear();
GC.Collect();
uc.Dock = DockStyle.Fill;
pnlContainer.Controls.Add(uc);
}
Ich mag diese Methode zu rufen wie diese
frmMain.showUC(new ucClientList);
Aus einer anderen Klasse.
mir genau erklären lassen, was ich erreichen will. Ich habe ein Formular Control ‚frmMain‘ genannt, die ein Panel Steuerelement mit dem Namen ‚pnlContainer‘ enthalten, und ich möchte Usercontrol in sie zu laden, habe ich UserControl1 und UserControl2. Nun betreibe ich das Programm und die frmMain Lasten, ich will UserControl1 auf das Panel pnlContainer hinzuzufügen und ich habe eine Schaltfläche in der UserControl1, die die gleiche Platte laden UserControl2 in auf dem Hauptformular soll, wenn ich darauf klicken. Wie implementiere ich das?
Wenn du eine andere Art der Implementierung hast, teile es bitte mit. Vielen Dank. –