Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB6] Più condizioni da verificare in uno stesso ciclo if

    Sto creando un programmino ed ho questo dilemma.
    Ho inserito un timer con interval settato ad 1. Ho creato una funziona pubblica che viene richiamata dal timer in cui ho inserito un ciclo if:

    codice:
    If Text1.Text <> "" Then
    Label4.Visible = True
    ElseIf Text2.Text <> "" Then
    Label5.Visible = True
    ElseIf Text3.Text <> "" Then
    Label6.Visible = True
    End If
    Ora però vorrei aggiungere un altra stringa che mi permette di fare ciò. Una volta controllato che le tre textbox non siano vuote, voglio che il Command1 diventi cliccabile (quindi settare su Command1.Enabled = True).

    Il problema è questo, come posso far in modo che controlli che tutte e tre le textbox siano occupate? Io ho pensato di scrivere:

    codice:
     If Text1.Text, Text2.Text, Text2.Text <> "" Then
    Command1.Enabled = True
    End If
    Ma senza nemmeno provare so che è sbagliato. Sapete come fare? Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Devi usare l'operatore AND.
    Non è corretto parlare di "ciclo" a proposito del costrutto If...Then...ElseIf...End.
    Sei sicuro di voler eseguire quel pezzo di codice ad ogni millisecondo?

  3. #3
    In poche parole vorrei che una volta riempito il campo appaia il label accanto con scritto OK.

    Non ho trovato altre soluzioni oltre a queste.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Fermo restando l'uso dell'operatore AND nella If, non vale la pena di attivare un timer per verificare se una TextBox è "piena". Basta controllarlo qundo il contenuto della TextBox cambia, per esempio nell'evento Change.

  5. #5
    Però prendendo in considerazione il tuo consiglio, anche inserendo a e continuo a scrivere nel campo, il label appare comunque. Io vorrei che appare solo alla fine!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Anche con il Timer sarebbe successo.
    Quand'è che si può considerare che è terminato l'input? Se è quando il focus passa alla TextBox successiva l'evento giusto può essere LostFocus. Se invece è quando viene premuto Invio l'evento giusto può essere Keypress.

    (Tutte cose facilmente reperibili nella guida)

  7. #7
    Ho fatto con LostFocus ma ancora non ho risolto il problema principale.

    Ho inserito:
    codice:
    If Text1.Text And Text2.Text And Text3.Text <> "" Then
    Ma mi da errore.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    codice:
    If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" Then

  9. #9
    Grazie tante per i consigli. Ora va tutto benissimo

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.