Supportnet / Forum / Anwendungen(Java,C++...)
Form-Inhalt in C# wechseln
Frage
Moin,
ich bin c# Neuling und stehe vor folgender Aufgabe: Ich hab ein Form mit einer Eingabemaske und einem Button. Wird der Button gebrückt, soll der Inhalt gesichert werden (gehört hier nicht zum Problem) und eine neue Maske im gleichen Form geöffnet werden, wo weitere Daten eingegeben werden können usw... bis man halt am Ende ankommt. Am besten wäre es, wenn sich jede "Page" als eigenes Objekt definieren lässt.
Habt ihr eine Idee? Danke im Voraus!
Fabian
Antwort 1 von JasonDelife
Hallo Fabian!
Du könntest ja für jede "Page" eine Klasse von (System.Windows.Forms) UserControl ableiten. Dann im Konstruktor der Page-Klassen die "Page-spezifischen" Elemente hinzufügen, positionieren etc.. Im Hauptfenster fügst du die erste Page und den Button ein. Wenn der Button gecklickt wird, ersetzt du die Page durch die nächste (in UserControl-Array verwalten).
Ungefähr so :
Du könntest ja für jede "Page" eine Klasse von (System.Windows.Forms) UserControl ableiten. Dann im Konstruktor der Page-Klassen die "Page-spezifischen" Elemente hinzufügen, positionieren etc.. Im Hauptfenster fügst du die erste Page und den Button ein. Wenn der Button gecklickt wird, ersetzt du die Page durch die nächste (in UserControl-Array verwalten).
Ungefähr so :
// Erste Page
public class FirstPage : UserControl
{
// ...
}
// Und so weiter
// In Hauptfenster-Klasse
// Die Pages
Panel[] pages = new Panel[3];
// Index der aktuellen Page
int act = 0;
// Konstruktor
public Hauptfenster()
{
//...
pages[0] = new FirstPage();
// usw.
// Anzeigen
this.Controls.Add(pages[act]);
}
// Button gecklickt
private void nextPage(object sender, EventArgs evt)
{
// Auswertung, Speicherung, ...
// Altes löschen
this.Controls.Remove(pages[act]);
++act; // Nächster Seitenindex
// Neues anzeigen
this.Controls.Add(pages[act]);
// Wenn letzte Seite, Button deaktivieren
if(act == (pages.Length - 1)) button.Enabled = false;
}
Antwort 2 von JasonDelife
Upps! Fehler:
Das Array muss natürlich vom Typ
Gruß JasonDelife.
Das Array muss natürlich vom Typ
UserControl sein.UserControl[] pages = new UserControl[3];Gruß JasonDelife.

