Newsgroup: it.comp.lang.visual-basic
Titolo: TabIndex come si usa?

Ciao sono Cristina,
stavolta vi disturbo per un problema con il tabindex.
Ho creato un form con 200000 (scherzo naturalmente anche se sono proprio
tanti) tra textbox e dbcombo e non mi ci raccapezzo più con il tabulatore!
Intendo dire: come si usa stò benedetto TABINDEX?
Al variare di una condizione posso far in modo che mi varii l'ordine della
tabulazione sui vari campi?
Vi prego sono veramente sconsolata!
Cris

 ha scritto

per variarlo puoi farlo, cambiando il valore della proprieta', ma se hai
molti controlli non so se consigliartelo, rischi di perdertici.
io (e credo molti) li riordino in questo modo:
quando hai finito (seno' ogni volta sei da capo) di sistemare i controlli,
bloccali (per evitare spostamenti indesiderati), poi comincia a cliccarli a
partire dall'ultimo in basso a destra andando verso sinistra; quando hai
finito con una riga passa a quella superiore, sempre da destra verso
sinistra.
man mano che metti il fuoco su un controllo, segna 0 nel suo tabindex. alla
fine il primo controllo in alto a sinistra avra' indice 0, e gli altri
saranno nell'ordine normale di tabulazione.
e' piu' facile a dirsi che a farsi. se non sei mancina, con la destra
clicchi i controlli e con la sinistra scrivi 0. ci vuole un attimo anche con
form affollati. occhio solo che alcuni controlli non hanno la proprieta'
tabindex, quindi rischi di mettere 0 nella prop sbagliata...
se un controllo non deve ricevere mai il fuoco metti tabstop -> false. se
poi hai bisogno, al form_load, di avere il fuoco p.e. sul terzo controllo,
usa il metodo .setfocus nel load, seno' ti incasini di nuovo:
    sub form_load
        me.show
        text5.setfocus
    end sub
tip: le etichette non ricevono mai il fuoco, ma lo rimbalzano sul controllo
successivo nel tabindex. per cui se in un label ha uno shortcut (p.e.
&Nome), il fuoco facendo alt-n finira' sul tuo txtNome o come l'hai
chiamato, se sta subito dopo il label.
ciao, a.

 Vi prego sono veramente sconsolata!
Un sistema veloce per impostare il tabindex in fase di design e' quello di
selezionare *l'ultimo* controllo della serie, selezionare la property TabIndex e
inserire '0', poi passare al penultimo (la prop. rimane selezionata) e
nuovamente inserire '0'; andando a ritroso in questo modo alla fine avrai i tuoi
controlli nell'ordine corretto (VB scala automaticamente i controlli precedenti
quando imposti un TabIndex gia' esistente).
Questo stesso trucco puo' essere usato anche in esecuzione, e potrebbe
facilitarti un po' le cose, quando devi cambiare l'ordine di tabulazione puoi
fare una cosa del tipo:
Sub CambiaTab()
Text15.TabIndex=0
Combo21.TabIndex=0
Text6.TabIndex=0
Text12.TabIndex=0
'Ecc... ora l'ordine reale diventa Text12,Text6,Combo21,Text15
End Sub
e, perlomeno, non devi tenere traccia dei valori esatti da usare... ricorda che
puoi anche giocare con la property TabStop(booleana) per inibire il tab di
alcuni controlli senza modificare l'ordine.
Ciao
--
Luca Dormio
luca....@tin.it
luca....@sig-la.com

 alcuni controlli senza modificare l'ordine.
dimenticavo -- avevo visto un free che gestiva anche quest'aspetto:
http://winfiles.cnet.com/apps/98/vb-tools.html
l'hp e':
http://www.mztools.com/
dalle schermate sembra abbastanza semplice. pero' non l'ho provato.
ciao, a.
      MZ-Tools  Version 1.0    No Registration Required
            11-Oct-00 110K Win 95/98/NT  Freeware  Never Expires  Install &
Uninstall
            1 min at 28.8K  <1 min at 56K  <1 min at ISDN 128K
            "All-in-one" Add-In for VB6: TabIndex Assistant, Procedure
Callers, Find in All Projects, Close Windows, Review TabIndex, Review
Collections, Add Property or Function, Add Error Handler, Add Header
Comment, Clear Immediate Window, Project Statistics. English and Spanish
versions available.


come si fà a bloccarli?
grazie ancora per il valido aiuto
Cris

 come si fà a bloccarli?
menu formato | blocca controlli.
perche' sia attivato devi avere attiva una finestra con l'oggetto form, non
col codice.
contento di esserti stato utile. ciao, a.