Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    [VB.NET]Cambiare Backcolor a textbox

    dovrei fare lampeggiare il backcolor ad una condizione.
    la condizione è che se Me.txtUscita.Text = "00.00", inizia il lampeggio

    codice:
        Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
            Timer1.Enabled = True
            Timer1.Interval = 100
        End Sub

    codice:
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
            If Me.txtUscita.Text = "00.00" Then
                Me.txtUscita.BackColor = Color.Green
                Application.DoEvents()
                Me.txtUscita.BackColor = Color.Red
            Else
                Me.txtUscita.BackColor = Color.Green
            End If
    
        End Sub
    cosa c' è di sbagliato?

  2. #2
    secondo me devi togliere la condizione dall'evento Tick ed attivare il timer sull'evento validating della tua textbox se il text è come serve a te, non è conveniente attivare il timer all'avvio del form se neanche è detto che ti servirà...
    I database... la mia passione + o -

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    allora il codice postato funziona, il problema è che deve funzionare così, cioè devo mettere sempre all' attenzione.
    ciao

  4. #4
    scusa... ma non ho capito... se così funziona qual'è il tuo problema
    I database... la mia passione + o -

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da x69asterix
    il problema è che deve funzionare così, cioè devo mettere sempre all' attenzione.
    Cosa diavolo significa questa affermazione?

    Sorvolando sui "non sense", il problema si risolve semplicemente: il Timer va attivato e disattivato rispettivamente quando il controllo TextBox perde e acquisisce il focus (ci sono gli eventi appositi per rilevare questi stati).

    L'uso di DoEvents è del tutto inutile in questo contesto, e nel contesto in cui è stato inserito nel codice di esempio, quindi va del tutto rimosso.

    Nel codice dell'evento Tick del Timer è necessario inserire esclusivamente la verifica del valore contenuto all'interno della casella di testo; se il valore è quello da segnalare col lampeggio, basta impostare il colore di sfondo a verde se è rosso, e viceversa; se il valore contenuto non è quello da segnalare col lampeggio, basta attribuire alla casella di testo il colore di sfondo predefinito (quello scelto per una "situazione normale", arbitrariamente, che potrebbe coincidere pure con uno di quelli utilizzati precedentemente per effettuare il lampeggio).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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