Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [VB.NET] Piccolo problemino con un countdown

    Ho scritto queste righe di codice e va tutto bene fino a quando fisso un valore di partenza conta stabilito a livello di codice, mentre se voglio impostarlo in esecuzione del programma incontro degli errori.
    Quello che voglio fare è scrivere il valore di partenza del timer su una textbox. La label prende il valore della textbox e quando premo start il timer si avvia da quel valore.


    codice:
     Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Timer1.Start()
            Timer1.Interval = 1000
            If Label12.Text = 10 Then
                Label12.ForeColor = Color.Red
                Label12.Text = Val(Label12.Text) - 1
            ElseIf Label12.Text = 0 Then
                Timer1.Enabled = False
                MsgBox("Tempo scaduto!")
            Else
                Label12.Text = Val(Label12.Text) - 1
            End If
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Label12.ForeColor = Color.Black
            If Timer1.Enabled = True Then
                Timer1.Start()
            Else
                Label12.Text = 20
                Timer1.Start()
            End If
        End Sub
    End Class

    Ho provato a scrivere cosi al posto di questa riga
    Label12.Text = 20
    ho sostituito con questa
    label12.Text = form2.Textbox13.Text
    ma mi da errore e non compila

    ps. la textbox è nel secondo form

  2. #2
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    Label12.Text è un testo e non lo puoi confrontare col numero 10, per farlo devi trasformare il testo in numero.
    Usa option strict on che ti eviterà di incorrere in qusti errori
    Ultima modifica di patel; 06-08-2018 a 17:04

  3. #3
    Quote Originariamente inviata da patel Visualizza il messaggio
    Label12.Text è un testo e non lo puoi confrontare col numero 10, per farlo devi trasformare il testo in numero.
    Usa option strict on che ti eviterà di incorrere in qusti errori

    Ho cambiato strada per evitare errori da parte dell'utilizzatore,
    ho aggiunto la stringa con val() per convertire gli elementi della combobox in numeri [alla riga di codice numero 19]

    codice:
    Label12.Text = Val(Form2.ComboBox1.SelectedText)

    Non mi restituisce errori, mi compila, ma il timer quando premo start parte direttamente da zero e esce il msg "tempo scaduto"
    Ultima modifica di flippo995; 07-08-2018 a 12:42

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ma cosa contiene questa combobox? Non ne avevi mai parlato prima
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma cosa contiene questa combobox? Non ne avevi mai parlato prima
    il tempo da cui deve partire il countdown in secondi

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Sicuro? Come hai riempito la combobox?

    Hai eseguito il codice passo passo? Hai messo un breakpoint nella linea per controllare il valore del selectedtext ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Sicuro? Come hai riempito la combobox?

    Hai eseguito il codice passo passo? Hai messo un breakpoint nella linea per controllare il valore del selectedtext ?
    Ho risolto in questo modo, ma ho un nuovo problema:
    [form1]
    codice:
     Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Timer1.Start()
            Timer1.Interval = 1000
            If Label12.Text = 10 Then
                Label12.ForeColor = Color.Red
                Label12.Text = Val(Label12.Text) - 1
            ElseIf Label12.Text = 0 Then
                Timer1.Enabled = False
                MsgBox("Tempo scaduto!")
            Else
                Label12.Text = Val(Label12.Text) - 1
            End If
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Label12.ForeColor = Color.Black
            If Timer1.Enabled = True Then
                Timer1.Start()
            Else
                Label12.Text = Val(Label12.Text)
                Timer1.Start()
            End If
        End Sub
    [form2]
    codice:
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            
            Form1.Label12.Text = ComboBox1.Text
    
        End Sub
    
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Me.ComboBox1.Items.Add("10 secondi")
            Me.ComboBox1.Items.Add("15 secondi")
            Me.ComboBox1.Items.Add("20 secondi")
            Me.ComboBox1.Items.Add("25 secondi")
            Me.ComboBox1.Items.Add("30 secondi")
            Me.ComboBox1.Items.Add("35 secondi")
            Me.ComboBox1.Items.Add("40 secondi")
            Me.ComboBox1.Items.Add("45 secondi")
            Me.ComboBox1.Items.Add("50 secondi")
            Me.ComboBox1.Items.Add("55 secondi")
            Me.ComboBox1.Items.Add("60 secondi")
    
        End Sub
    Funziona tutto alla perfezione, ma non rimane salvata la scelta nella combobox, ovvero quando viene selezionata la prima volta, funziona, mentre a timer scaduto, se ripremo start (riavvio il timer) non mi viene selezionato nessun elemento della combobox.
    Come si fa per memorizzare la scelta della combobox? In modo da selezionare il tempo solo la prima volta?
    Ultima modifica di flippo995; 10-08-2018 a 12:40

  8. #8
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,000
    Perchè dentro alla funziona rifai lo start del timer ?

    codice:
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Timer1.Start()

  9. #9
    Quote Originariamente inviata da cassano Visualizza il messaggio
    Perchè dentro alla funziona rifai lo start del timer ?

    codice:
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Timer1.Start()
    è ridondande, ho tolto la riga...ma comunque non mi salva la selezione la combobox ad un nuovo start...

  10. #10
    Ho provato di tutto, ma non rimane salvata l'opzione, non so dove mettere mano

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.