Obefläche soll automatisch geändert werden

dartox

Erfahrenes Mitglied
Hi!

Ich hab zwar schon im Buch nachgeschaut, bin aber nicht fündig geworden.

Folgendes: Z.B. Wenn man auf Datei -> 1 klickt, dann soll die Oberfläche des Programms geändert werden, nämlich so, dass nur die Labels, TextBoxes und Buttons die für "1" bestimmt sind, auftauchen.

Wenn ich auf "2" klicke, sollen wiederrum nur die für "2" bestimmten Buttons, Labels,... auftauchen.

Versteht ihr?

Muss man da bei den Eigenschaften herumschrauben, oder im Code?

Könnt ihr mir bitte weiterhelfen?

MfG dartox
 
Hi.

Ich schätze mit "Datei -> 1" meinst ein Menü.
Naja, egal.

Du wirst dir Code schreiben müssen, welcher die Controls auf visible=true oder false setzt.

MfG,
Alex
 
Ja, damit mein ich ein Menü.

Hab mir auch schon gedacht dass ich dass so lösen kann, mit Visible, doch es sind sehr viele Auswahlmöglichkeiten.

Gibt's da nicht etwas einfacheres?

Wenn nicht, dann Probier ich's mal so. Danke auf alle Fälle.
 
Schwer is es wirklich nicht, ich meinte ja dass es viel Code wird.

Seeehr viel Code. Wird sich aber hoffentlich lohnen.

Thx

MfG dartox
 
Damits einfacher wird, könntest du zugehörige Controls in einem Array speichern, oder wenn alle die angezeigt werden sollen nebeneinander liegen diese auf ein Panel geben, und dann nur das Panel sichtbar / unsichtbar machen.
Oder, du speichert im Tag-Attribut der Controls einen bestimmten Wert und dann in einer Schleife alle Controls durchgehen, diesen Abfragen, und dann aufgrund davon bestimmen ob Angezeigt werden soll oder nicht.
 
Hm, ich hab dass jetzt mal soweit gemacht, mit visible.

Doch jetzt bin ich auf ein anderes Problem gestoßen.

Ich hab 4 TextBoxes, wenn ich auf "1" (im Menü) klicke, sollen auch alle 4 erscheinen. Neben jeder TextBox ist ein Button, der dementsprechend Programmiert wurde.

Aber wenn ich jetzt im Menü auf "2" klicke, sollen 2 TextBoxes weg (dass ist kein Problem mit Visible), aber jetzt ist dass Problem dass die Buttons auch anders Programmiert gehören, nämlich so dass sie für "2" die zu erledigende Aufgabe erfüllen.

Wie soll ich da rangehen? Denn wenn ich auf nen Button gehe, dann ist dort der Code der für "1" bestimmt ist (ist auch logisch).

Weisst du da was?
 
Du kannst bei einem Klick auf Menupunkt2 den Events der Buttns ja einen neuen EventHanlder hinzufügen.

Code:
button2.Click -= new EventHandler(button2_Click);
button2.Click += new EventHandler(button2_Click2);
 
Merk dir im Formular doch einfach mit einer Membervariable einen Modus.
Und reagierst dann entsprechend in der Ereignisbehandlungsroutine.

Alternativ könntest du natürlich auch schauen, ob eine bestimmte Textbox sichtbar ist und je nach Sichtbarkeit das Ereignis behandeln.
 
Zurück