[C#] Beim drücken eines Buttons Fensterinhalt ändern

ChristianGoldammer

Grünschnabel
Ohje das ist mir ja nun schon fast peinlich :)

Meine Problemstellung ist:

Ich will in meinem Programm im ersten Fenster z.B. auf den Button1 drücken und dann soll sich der Fensterinhalt ändern..z.B. soll Button2 & Button3 und ein zurück Button erscheinen...

Das habe ich mir so einfach gedacht jedoch stehe ich grade total auf dem Schlauch...

Programmieren tue ich in Visual Studio 2005 und die Fenster dann im Designer falls das was ausmacht!

Was ist den für das Problem die eleganteste Lösung? MDI passt ja nicht so ganz? Oder etwa doch? :)

Wäre toll wenn mir jemand das obige Beispiel erklären könnte :)

Schöne Gute Nacht & Danke schonmal!
 
Ich kann mir jetzt zwar nicht wirklich genau vorstellen was genau du willst, aber die Sichtbarkeiten von einzelnen Buttons kannst du über deren Visible-Eigenschaft setzen.
 
Man könnte es sich z.B. an dem Menü eines Spieles vorstellen:

Ich starte das Spiel und es kommt die Auswahl:

Einzelspieler
Mulitplayer
Optionen
Beenden

Klicke ich dann auf Einzelspieler öffnet sich im selben Fenster dann

Einfach
Mittel
Schwer
zurück

in Java hatte ich sowas mit Panels gelöst...denke das könnte auch hier zum Erfolg führen nur wird das ziemlich unübersichtlich wenn ich vom Hauptmenü 3 Untermenüs und diese wieder 2-3 haben...

Kann man das irgendwie eleganter lösen? Mit dem Designer oder so :)

Hoffe mein Problem wird klar :)
 
Mach dir einfach entsprechende UserControls die die Funktionalitäten haben, die du brauchst und erstelle diese dynamisch. Dann hast im Designer auf der Form nur das erste UserControl drauf, kannst aber dennoch alle bearbeiten.
 
Okay dann werde ich mal schauen ob ich heute Abend noch Zeit finde mich da rein zu lesen :) Bin in Sachen c# blutiger Anfänger :)

Werde mich bestimmt nochmal melden :)

EDIT:
cosmochaosmaker hat gesagt.:
Hi!

Ich mach Dir mal eine kleine Demo.

Bis gleich,
cosmo


Das wäre echt spitze :)

Danke schonmal :)
 
So hier hast die Demo. :)

Ich hab hier für den Zugriff auf die einzelnen Controls den Singleton Pattern verwendet.
Dadurch hast echt wenig Code...
Macht aber auch nur sinn wenn die Dinge ständig und nur einmal zur verfügung stehen sollen.

//Edit: Kannst die UserControls aber auch zum Form hinzu fügen und einfach nur die
Control.Visible Eigenschaft zum anzeigen und verstecken verwenden.

MfG,
cosmo
 

Anhänge

  • 25078attachment.zip
    63,8 KB · Aufrufe: 588
Zuletzt bearbeitet:
cosmochaosmaker hat gesagt.:
Macht aber auch nur sinn wenn die Dinge ständig und nur einmal zur verfügung stehen sollen.

Hm ständig und nur einmal? :) Verstehe ich net ganz =)

Naja werde es mir heute Abend bestimmt nochmal anschauen auf Arbeit habe ich leider keine c# Umgebung :) Nur Cobol und ab und an mal Java :)
 
Ich meine damit dass wenn Du ein Objekt immer wieder benötigst
und es nur einmal vorhanden sein soll. Du quasi verhindern willst,
dass mehrere Instanzen vorhanden sein können. Und es auch nicht jedes mal neu erzeugen willst.

Dafür definierst Dir ein statisches Property und kannst über den Klassennamen
bequem auf das Objekt zu greifen. Ein anderes Anwendungsbeispiel währe da noch
eine ErrorLog- oder eine DB-Klasse, die jeweils auf ein und die selbe Resource zu greifen.

Achso. wenn Du den Singleton Pattern verwendest, würd ich Constructor der Controls als private definieren.
Hab die Demo dementsprechend aktualisiert.
 
cosmochaosmaker hat gesagt.:
Ich meine damit dass wenn Du ein Objekt immer wieder benötigst
und es nur einmal vorhanden sein soll. Du quasi verhindern willst,
dass mehrere Instanzen vorhanden sein können. Und es auch nicht jedes mal neu erzeugen willst.

Dafür definierst Dir ein statisches Property und kannst über den Klassennamen
bequem auf das Objekt zu greifen. Ein anderes Anwendungsbeispiel währe da noch
eine ErrorLog- oder eine DB-Klasse, die jeweils auf ein und die selbe Resource zu greifen.

Achso. wenn Du den Singleton Pattern verwendest, würd ich Constructor der Controls als private definieren.
Hab die Demo dementsprechend aktualisiert.

Okay also hab ich den Satz richtig verstanden :)

Dann danke nochmals, viel Spaß auf Arbeit? Werde mich bestimmt nochmal melden :)

mfg
Christian :)
 

Neue Beiträge

Zurück