Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    15

    [VB.NET] Attivare e disattivare con lo stesso Button?!?!

    Salve, non riesco a venirne a capo, devo fare in modo che premendo un pulsante e poi ripremendolo si svolgano 2 azioni diverse.

    codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim var1 As Integer = 0
    
            If var1 = 0 Then
                CODICE1
                var1 = 1
    
            Else
                CODICE2
                var1 = 0
    
            End If
        End Sub
    ovviamente cosi facendo la parte di codice dopo Else, non partirà mai, perchè ogni volta che premo il pulsante tornerà a 0 e non mi tiene salvato il valore 1. se ad esempio al posto che
    Dim var1 As Integer = 0 scrivessi Dim var1 As Integer = Textbox1.text dove textbox1 corrisponde a 0 il tutto funzionerebbe. come faccio quindi a dichiarare la variabile fuori dal Sub Button1, oppure utilizzare un metodo diverso dalla condizione IF??

    sono un Neofita se mi risolvete non so come ringraziarvi

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Usa una variabile Static:

    codice:
    Static Alterna As Boolean
    
    Alterna= Not Alterna' ad ogni clic il valore cambia
    
    If Alterna Then ' True
        CODICE1
    Else
        CODICE2
    End If

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    15
    grazie gibra adesso la provo
    edit: ok funziona, mi spiegheresti cos'è quel Not

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    15
    altra domanda, ora al posto che il pulsante, ho impostato in un timer il riconoscimento della pressione di un tasto, però ho un problema se il tasto lo tengo premuto, si attiva e disattiva il codice come se lo premessi tantissime volte, come posso fare per farlo eseguire 1 volta sola per pressione del tasto?

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da gotta
    grazie gibra adesso la provo
    edit: ok funziona, mi spiegheresti cos'è quel Not
    Il Not è una negazione, e dato che una variabile di tipo Boolean può avere solo 2 valori opposti (vero o falso) il NOT fa sì che il valore della variabile 'si alterni' ad ogni iterazione.

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da gotta
    altra domanda, ora al posto che il pulsante, ho impostato in un timer il riconoscimento della pressione di un tasto, però ho un problema se il tasto lo tengo premuto, si attiva e disattiva il codice come se lo premessi tantissime volte, come posso fare per farlo eseguire 1 volta sola per pressione del tasto?
    Invece di usare l'evento Click, usa l'evento MouseUp.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    15
    l'evento è tick del timer per quello visto che il timer è ciclico se non premo veloce il pulsante e lo tengo premuto andrà avanti a svolgere quel codice, se invece disattivassi il timer dopo non potrei disattivare nemmeno il codice a meno che non uso 2 timer, però visto che già ne ho 3 di timer non vorrei metterne 6

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Scusa,
    non capisco a cosa ti serva il Timer se gestisci il codice dal Button?
    Per me è sbagliato, ma non sapendo a priori che cosa devi fare non posso dire altro.


  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    15
    ti riporto cosi capisci meglio:
    codice:
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    
            If GetAsyncKeyState(Keys.NumPad1) Then
                Static var1 As Boolean
                var1 = Not var1
                If var1 Then
                    
                    ......
                    Dim player1 As New Media.SoundPlayer(My.Resources.Enable)
                    player1.Play()
    
    
                Else
                    ........
                    Dim player1 As New Media.SoundPlayer(My.Resources.Disable)
                    player1.Play()
    
    
    
                End If
            End If

    Il Button l'ho levato e ho messo il timer per rilevare la pressione dei tasti

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    A maggior ragione vale quanto ho detto prima.

    Ma il codice è tuo.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.