Button freischalten

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von DasHuhn.

    Button freischalten

    Hallo zusammen,

    ich habe eine kurze Frage und zwar bin ich neueinsteiger in VB und bin gerade dabei ein kleines Programm zu basteln.
    Der sinn und Zweck dieses Programms spielt hier in dem Fall keine rolle.

    in diesem Programm gibt es 3 ComboBoxen , 5 Textboxen und einen Button zum berechnen.

    Ich wollte das Programm so gestalten, dass am Anfang alles bis auf ComboBox1 gesperrt ist und erst wenn dort etwas ausgewählt wird, wird Combobox2 aktiviert .
    Wenn da was ausgewählt wird, wird Combobox 3 aktiviert und erst danach die 5 Textboxen.
    Das habe ich soweit auch hinbekommen.

    Um ein Abstürzen des Programmes zu vermeiden, weil die Berchnung ohne eingegebene Werte ja nicht funktioniert, möchte ich den Button erst dann freischalten, wenn in alle 5 textboxen ein wert eingegeben wurde.

    Meine frage wäre jetzt, ob jemand einen Tipp für mich hat wie ich das am besten hinbekomme.
    Muss ich dafür eine Schleife verwenden oder gibts es da einen direkten befehl und wo muss der Code hin. Kommt der in die Public Class Form oder in den Privat Sub vom button oder zu den textboxen?
    Wie gesagt ich bin noch neueinsteiger und hab noch nich all zu viel ahnung vom Programmieren, daher erscheinen die Fragen vielleicht etwas blöd.

    vielen dank schonmal für die Hilfe.
    Hatte auch grade sowas, ich checke dann, ob in dem Text der Combobox ein anderer als der Standardwert steht, wenn ja, setze ich Boolean Variablen auf true. Dann wird geprüft ob alle True sind:

    Schema:
    Spoiler anzeigen

    Frage net richtig gelesen, ignoriere das ^^

    VB.NET-Quellcode

    1. dim cbo1,cbo2,cbo3 as boolean 'deklaration nach Public Class Form1
    2. ...
    3. 'abfrage
    4. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    5. If ComboBox1.Text <> "standardeintrag" Then
    6. cbo1 = True
    7. End If
    8. End Sub
    9. 'für die anderen comboboxen auch ..
    10. ...
    11. ...
    12. 'Letzte Prüfung, ob alle Einträge "gültige" werte haben (vllt im SelectedIndexChanged Event der letzten nötigen combobox)
    13. if cbo1 = true andalso cbo2 = true andalso cbo3 = true then
    14. 'button Enable
    15. endif

    //


    Bzw im TextChange Event jeder Textbox die folgende Sub aufrufen..

    VB.NET-Quellcode

    1. Private Sub AktiviereButton()
    2. If TextBox1.textlength > 0 andalso TextBox2.textlength > 0 andalso TextBox3.textlength > 0 then 'Sobald in allen 3 Textboxen was steht, Button Enabled
    3. Button1.enabled=true
    4. else
    5. Button1.enabled=false
    6. endif
    7. end sub


    //TextLength berichtigt

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Unwesen“ () aus folgendem Grund: nu aber -.-

    okay da hätte ich ja auch selber drauf kommen können^^

    trotzdem danke


    also ich habs jetzt mal ausprobiert, aber der Button ist immernoch gesperrt wenn ich in alle textboxen was eingegeben habe

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DasHuhn“ ()

    Rischtisch
    //Argh, viel zu umständlich. So is besser:
    Einfach in deinen Code packen, die Sub wird dann automatisch aufgerufen, wenn in eine der drei Textboxen eingaben gemacht werden. SIehe Handles

    VB.NET-Quellcode

    1. Private Sub AktiviereButton() Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged
    2. If TextBox1.TextLength > 0 AndAlso TextBox2.TextLength > 0 AndAlso TextBox3.TextLength > 0 Then 'Sobald in allen 3 Textboxen was steht, Button Enabled
    3. Button1.Enabled = True
    4. Else
    5. Button1.Enabled = False
    6. End If
    7. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Unwesen“ ()