TextBoxen abhängig von Dropdown-Auswahl

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Nerothor.

    TextBoxen abhängig von Dropdown-Auswahl

    Hallo,

    Ich plane ein kleines Tool für ein Spiel.
    Die ganzen Berechnungen dafür funktionieren auch schon wunderbar, nun würde ich aber gern abhängig von einer Auswahl in einem Dropdown-Menü einige Textboxen verschwinden bzw auftauchen lassen, und ebenfalls abhängig von der Auswahl verschiedene Berechnungen für die Ausgabe durchführen lassen.

    Kann mir da jemand weiterhelfen?
    (Ich hoffe mal, ich habe mein Problem einigermaßen verständlich geschildert ;) )
    Hey,

    zunächst abfragen, ob überhaupt etwas in der Combobox ausgewählt wurde. Wurde nämlich nichts ausgewählt, kann es einen unbehandelten Fehler geben. Anschließen anhand des ausgewählten Items eine Aktion starten:

    VB.NET-Quellcode

    1. If IsNothing(ComboBox1.SelectedItem.ToString) = False Then ' prüfen, ob ein Item in der Combobox ausgewählt wurde...
    2. Select Case ComboBox1.SelectedItem.ToString
    3. Case "Aktion1"
    4. ' mach was, wenn "Aktion1" ausgewählt wurde
    5. Case "Aktion2"
    6. ' mach was, wenn "Aktion2" ausgewählt wurde
    7. End Select
    8. End If

    Gruß, Manschula
    Vielen Dank, allerdings klappt da was noch nicht ganz..
    Ich hab den Anfang so gestaltet, wie in deinem Beispiel, als "Aktion", die ausgeführt werden soll, die Visibility auf true / false ->

    VB.NET-Quellcode

    1. If IsNothing(Klassenwahl.SelectedItem.ToString) = False Then
    2. Select Case Klassenwahl.SelectedItem.ToString
    3. Case 1
    4. Ausdauer.Visible = True
    5. HP.Visible = True
    6. HitMelee.Visible = True
    7. HitChanceProzent.Visible = True
    8. Mana.Visible = False
    9. CritMelee.Visible = True

    etc.

    Allerdings - wenn ich im DropDown-Menü den Entsprechenden Punkt auswähle, passiert absolut gar nix : /

    Habe es auch mit der Bezeichnung des DropDown-Punktes versucht, ebenfalls nix passiert.

    Hast du vielleicht noch ne Idee, worans liegen könnte ?
    Hey,

    schau dir in deinem Code folgende Zeilen noch mal an:

    VB.NET-Quellcode

    1. Select Case Klassenwahl.SelectedItem.ToString
    2. Case 1

    Als Unterscheidungskriterium verwendest du den Text des ausgewählten Items ("Select Case Klassenwahl.SelectedItem.ToString"). Dieser Text liegt, wie der Name schon sagt und wie das ".ToString" auch signalisiert, als String vor.

    Dann aber untersuchst du, ob der Zahlenwert 1 vorliegt ("Case 1"). Du vergleichst also String mit Integer. Korrekt wäre es, String mit String zu vergleichen. Hast du in deiner Liste also den Eintrag "Auto" ausgewählt, würde der Code entsprechende so aussehen:

    VB.NET-Quellcode

    1. Case "Auto"
    2. TextBox1.Visible = False
    3. TextBox2.Visible = True

    Gruß, Manschula
    Argh...

    Naja, das mit dem String & Integer hatte ich vermutet, hatte es wie erwähnt ja auch schonmal mit der genauen Bezeichnung aus der Combobox versucht..

    Es lag tatsächlich daran, dass ich in der Eventbezeichnung nen Fehler hatte...

    Vielen Dank, Bluespide ;)
    Mist, hab noch was vergessen - je nach Auswahl im DropDown-Menü müssen in einigen TextBoxen unterschiedliche Berechnungen durchgeführt werden - allerdings erst nach klick auf nen Button.

    Hab gerade versucht, in den Berechnungsblock "If Case <Klassenbezeichnung>" einzubauen, aber der Befehl existiert nicht.

    Hat da jemand vielleicht noch nen kleinen Hinweis? :>