VB.NET programmieren. Counter beim drücken eines Buttons?
Guten Tag,
Ich verzweifle grad an der wahrscheinlichsten einfachsten Frage.
Wie zähle ich eine Zahl hoch, wenn ich auf ein Button drücke. Habe es immer mit
counter = counter + 1
oder
counter += 1
gemacht. Funktioniert diesmal auch, aber nur 1x | Ich drücke auf den Button und er zählt von 0 auf 1 hoch. Drücke ich ihn nochmal, geht es nicht mehr und bleibt bei der 1
Code:
Private Sub btn_startGame_Click(sender As Object, e As EventArgs) Handles btn_startGame.Click
counter()
End Sub
Public Sub counter()
Dim counter As Integer = 0
counter = counter + 1
Label1.Text = counter
End Sub
5 Antworten
Schau dir an, was es bedeutet, eine Variable zu deklarieren und wo man sie deklarieren kann. Und schau dir an, was ein Scope ist.
Du hast die counter-Variable in der Methode deklariert, sie wird also jedes mal neu "erschaffen". Jedes mal bekommt sie erneut den Wert 0 und 0 + 1 = 1.
Du musst die Variable in der Klasse deklarieren, dann behält sie ihren letzten Wert, solange wie die Instanz der Klasse lebt.
Abgesehen davon:
VB.NET ist tot, Microsoft hat es abgekündigt.
Es wird nicht mehr weiter entwickelt und vielleicht auch mit einer der nächsten VisualStudio-Version nicht mehr unterstützt.
Es KANN sogar sein, dass es mit zukünftigen Runtime-Versionen nicht mehr funktioniert, das halte ich aber für unwahrscheinlich.
Naja weil du den in der Funktion counter immer wieder auf 0 setzt. Du musst sie irgendwo anders deklarieren.
Du drückst auf den Button
Er setzt die Variable counter = 0
Du addierst 1 zu 0
Ergebnis ist 1
Und so sollte es funktionieren
Variable counter auf 0 setzen
Button drücken
1 zu counter addieren
Er wird immer mit 0 initialisiert in counter()
counter muss global sein.
Du schreibst im Sub das der counter 0 sein soll
Und dann verwendest du ihn so wieder.
Schreib das ausserhalb und dann sollte es gehen
Beispiel
Private Sub btn_startGame_Click(sender As Object, e As EventArgs) Handles btn_startGame.Click
counter()
End Sub
Dim counter As Integer = 0
Public Sub counter()
counter = counter + 1
Label1.Text = counter
End Sub
Du erschaffst die Variable immer wieder neu.
Haste auch mal die Antwort hinbekommen nach 10 min nach dem 4 vorher schon was geschrieben haben nh