Event TextBox.Change (gb.qt4)

Event Change ( )

Viene sollevato quando cambia il testo del controllo.

Questo evento viene generato per ogni lettera digitata oppure ogni volta che il programma scrive nella proprietà Text.

Esempio

PUBLIC SUB TextBox1_Change()

  IF TextBox1.Text = "gray" THEN PictureBox1.Background = &H707070&

END

Se si desidera utilizzare questo evento per modificare il testo nello stesso TextBox, questo gestore di eventi viene nuovamente sollevato.

Per evitare un overflow dello stack:

    Esempi

    PUBLIC SUB TextBox1_Change()

      IF TextBox1.Text = "gray" OR TextBox1.Text = "grey" THEN
        Object.Lock(TextBox1)
        TextBox1.Text = "grey"
        Object.Unlock(TextBox1)
      ENDIF

    END

  • Oppure usa un semaforo Boolean per impedire un secondo invio quando l'evento viene generato dal gestore eventi invece che mediante input manuale.

    PUBLIC bRefreshing AS Boolean

    PUBLIC SUB TextBox1_Change()

      IF bRefreshing THEN RETURN

      bRefreshing = TRUE

      IF TextBox1.Text = "gray" OR TextBox1.Text = "grey" THEN
        TextBox1.Text = "grey"
      ENDIF

      bRefreshing = FALSE

    END