Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    [VB] Ciclo di SetFocus ?

    ciao stò facendo un controllo su delle textBox, cioè se delle textBox sono vuote devo settare il fuoco su quelle vuote.. provo a spiegarmi meglio.. ho questo codice:
    codice:
    If t_socion = "" Or t_nome = "" Or t_cognome = "" Or t_natoa = "" Or t_natoa = "__/__/____" Or t_natoa = Null Or t_scadenza = "__/__/____" Or t_scadenza = Null Then
       MsgBox ("Per poter procedere al salvataggio inserire almeno:  Socio N., Nome, Cognome, Luogo di nascita, Data di nascita, Scadenza ")
       t_socion.SetFocus
       Exit Sub
    End If
    controllo se t_socion o t_nome ecc.. sono vuote o hanno un valore non valido.. così com'è il codice adesso se una qualunque di queste è vuota, il fuoco viene sempre settato su t_socion.
    Ora io vorrei che il fuoco venisse settato sulla textBox che realmente è vuota o ha un valore non valido, se ci sono + textBox vuote o con valore non valido il fuoco andrebbe a cadere sulla prima in ordine di tabIndex.
    Come dovrei fare? un ciclo? ma come?
    Voglio l'alt+s anche per FF

  2. #2
    ciao stò facendo un controllo su delle textBox, cioè se delle textBox sono vuote devo settare il fuoco su quelle vuote.. provo a spiegarmi meglio.. ho questo codice:


    code:--------------------------------------------------------------------------------
    If t_socion = "" Or t_nome = "" Or t_cognome = "" Or t_natoa = "" Or t_natoa = "__/__/____" Or t_natoa = Null Or t_scadenza = "__/__/____" Or t_scadenza = Null Then
    MsgBox ("Per poter procedere al salvataggio inserire almeno: Socio N., Nome, Cognome, Luogo di nascita, Data di nascita, Scadenza ")
    t_socion.SetFocus
    Exit Sub
    End If
    --------------------------------------------------------------------------------


    controllo se t_socion o t_nome ecc.. sono vuote o hanno un valore non valido.. così com'è il codice adesso se una qualunque di queste è vuota, il fuoco viene sempre settato su t_socion.
    Ora io vorrei che il fuoco venisse settato sulla textBox che realmente è vuota o ha un valore non valido, se ci sono + textBox vuote o con valore non valido il fuoco andrebbe a cadere sulla prima in ordine di tabIndex.
    Come dovrei fare? un ciclo? ma come?
    --------------------------
    Brutalmente la prima cosa che mi è venuta in mentefai un if con tanti elseif:

    if txt1="" then
    txt1.setfocus
    elseif txt2="" then
    .
    .
    .
    end if

    altrimenti nell'evento del lostfocus delle text fai un controllo se la text è vuota e in caso positivo fai rimanere il focus su quella text:metallica :metallica :metallica :metallica :metallica

    :metallica
    Vuoi sbattezzarti? Guarda QUI

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    ehm per questo avevo detto "ciclo" vorrei evitare 20 elseif
    Ciao
    Voglio l'alt+s anche per FF

  4. #4
    sono sempre io, eh dops?

    cmq, secondo me, se invece che dare 20 nomi diversi alle text ne dai uno, per esempio txtAAAAA, poi le indicizzi da 1 a 20.

    fai un ciclo che le scorre

    codice:
    For i = 1 To 20
       If txtProva(i).Text = "" Then
          txtProva(i).SetFocus
          Exit For
       End If
    Next i
    quando tropa che la text è vuota le da il focus ed esce dal controllo, quindi alla prima che trova vuota si ferma.....
    ...e quando meno te lo aspetti potrebbe capitare qualcosa di bello, di più importante di quello che avevi programmato...

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    hehe grazie Markho
    si ho sbagliato a dare nomi diversi per ogni textbox ma quando ho iniziato il programma non ho ordinato i campi ne database e tu sai che gli indici funzionano se i campi sono ordinati rispetto alle textBox nel programma.. quindi essendo arrivato alla fine del programma, mi trattengo nel dover modificare tutto il codice fatto.. e mi conviene perdere 10 min. in + nel fare tutti le elseif
    ti prometto che la prossima volta indicizzo tutte le textbox
    Ciao
    Voglio l'alt+s anche per FF

  6. #6
    puoi prendere spunto da questo stralcio di codice

    codice:
       Dim ctrl As Control
       For Each ctrl In Me
          If Left$(ctrl.Name, 2) = "t_" Then
             ' qui metti quello che devi fare
          End If
       Next
       Set ctrl = Nothing

  7. #7
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    mmm.. potresti spiegarmelo ?
    Voglio l'alt+s anche per FF

  8. #8
    in pratica il codice di optime fa un controllo se il nome di un controlla inizia per "t_" allora fa quello che deveessere fatto altrimenti controlla un altro controllo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  9. #9
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    mmmm.. però mi sembra una buona soluzione.. i miei cmpi iniziano tutti con t_
    Solo una cosa.. posso inserire questo ciclo all'evento validate della txtBox ? se no dove devo inserirlo?
    Grazie
    Voglio l'alt+s anche per FF

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.