[VB.NET] Label (Runterzählen)

09/13/2011 08:59 P00w#1
Hey Leute,
Wusste ned genau wie ich den Thread nennen soll deswegen hab ich
Label (Runterzählen) genommen ;D

Also ich zeige euch Heute wie ein Label von z.B 30 auf 0 runter zählt
und dann was ausführt z.B Form 2 öffnen

Was braucht ihr?
1x Label
1x Timer
2te Form
--------------
Zuerst öffnet ihr die Code Seite von eurer Form1

Als erstes schreibt ihr unter "Public Class Form1" das hin
Code:
Private meinzähler As Integer = 30
Wenn ihr das habt müsste das so aussehen
Code:
Public Class Form1
    Private meinzähler As Integer = 15
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    End Sub
End Class
In der Form1_Load startet ihr nun den Timer1
Code:
 Timer1.Start()
Wenn ihr das habt müsste der Code so aussehen
Code:
Public Class Form1
    Private meinzähler As Integer = 15
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Start()
    End Sub
End Class
Nun geht ihr wieder in den Form1(Entwurf)
Klickt einmal auf den Timer1 und im Eigenschaft's Fenster müsst ihr "Interval"
auf 1000 stellen den 1000 ist eine Sekunde

Nun macht ihr doppelklick auf den Timer1 und es müsste der Code erscheinen
Code:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
 End Sub
End Class
Und in den Timer1_tick schreibt ihr jetzt diesen Code rein:
Code:
        meinzähler -= 1
        Label1.Text = CStr(meinzähler)

        If meinzähler = 0 Then
            Me.Hide()
            Form2.Show()
        End If
Der ganze Code müsste jetzt so aussehen
Code:
Public Class Form1
    Private meinzähler As Integer = 30
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        meinzähler -= 1
        Label1.Text = CStr(meinzähler)

        If meinzähler = 0 Then
            Me.Hide()
            Form2.Show()
        End If
    End Sub
End Class
Kurze Erklärung:

Private meinzähler As Integer = 30 (Damit legst du fest bei welcher zahl er anfangen soll runter zu zählen)

Timer1.Start() (Damit startest du den Timer1)

meinzähler -= 1 (Er zieht immer eine Sekunde ab)

Label1.Text = CStr(meinzähler) (Er zeigt beim Label1 an bei wie viel Sekunden er gerade ist)

If meinzähler = 0 Then (Wenn der zähler auf 0 ist.. Also wenn er fertig runter gezählt hat dann..)

Me.Hide() (Mich verstecken also Form1)

Form2.Show() (Die Form2 erscheint)
09/13/2011 16:14 Muwbi#2
Mhh, geht das nicht viel einfacher?

1x Label
1x Timer

Im Labeltext gibt man die Sekunden an, die er runterzählen soll.
Timer stellt man auf 1000 und enabled = false

Dann:

Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = Val(Label1.Text) - 1

        If Label1.Text = 0 Then
            Me.Hide()
            Form2.Show()
        End If
    End Sub
End Class
Da braucht man ja keine Variable...

MfG
Muwbi
09/13/2011 19:04 P00w#3
Ja.
So geht es natürlich auch
und ist kürzer
09/15/2011 14:29 Che#4
Naja schafft das nicht jeder, der mehr als 5 Minuten mit Visual Basic verbracht hat, selbst?
Zwar schön geschrieben, aber trotzdem unsinnig... sry
09/15/2011 15:28 P00w#5
Es ist ja nur für anfänger für dich is ja klar das es unsinnig ist
Das für jeden der bissl VB kann
Aber vl. braucht es ja wer