Ho un modulo windows vb.net con circa 15 caselle combinate e 15 caselle di testo, insieme a molti altri controlli. Tutte queste caselle di testo e caselle combinate si trovano in pannelli. La ragione di questo è che ho bisogno di regolare la proprietà visibile dei controlli in base a ciò che l'utente seleziona/inserisce, quindi raggruppare ogni etichetta e controllo insieme nei propri pannelli sembrava un modo semplice per ottenere ciò. Ho impostato l'ordine di tabulazione tramite proprietà, ma non funziona. Quando passo il mio modulo, salta in giro e non segue l'ordine di tabulazione che ho impostato. Questo perché i miei controlli si trovano ciascuno in pannelli separati? Ho impostato TabStop su false per tutto ciò su cui non voglio un tabstop, sono un po 'confuso su cosa sta succedendo qui, sembra davvero che il fatto che le mie caselle di combo e le mie caselle di testo siano ciascuna all'interno dei loro pannelli impedisce il mio Tab Indici per funzionare. Qualcuno può confermare questo o avere altre idee su ciò che potrebbe accadere? Tab Index funziona se creo un nuovo modulo.L'indice di tabulazione non funziona con i controlli nei pannelli?
risposta
Che ci crediate o no, l'ordinamento del pannello DEVE assolutamente influire sul TabIndex. Ho trovato che il modo più semplice per gestire l'ordine di tabulazione su un modulo a più riquadri è utilizzare Visualizza> Ordine tabulazioni come suggerito da LarsTech. Quindi, una volta che l'ordine di tabulazione è visibile, sarai in grado di vedere come i pannelli influenzano l'ordinamento generale dei controlli contenuti in ciascun pannello. Quindi, fare clic con il pulsante sinistro del mouse uno alla volta sui pannelli effettivi, nell'ordine in cui si desidera che il flusso vada. Noterai che ordinerà automaticamente i comandi all'interno di ciascun pannello, con l'ordine generale del pannello nell'ordine specificato. Una volta fatto ciò, puoi fare clic su ciascun controllo all'interno di ciascun pannello per impostare l'ordine di tabulazione relativo di un controllo all'interno di un determinato pannello.
Provare a utilizzare "Visualizza-Ordine scheda" nella finestra di progettazione di Visual Studio e fare clic su ciascun contenitore e controllare nell'ordine desiderato. L'indice di tabulazione del contenitore genitore (pannelli) è importante.
Grazie, ho provato anche quello, ancora senza dadi – TypeM1smatch
@EricJ Prova a ricreare il problema in un nuovo piccolo progetto. Se riesci a ricrearlo, modificalo nel tuo post. – LarsTech
Risposta corretta. "L'indice di tabulazione del contenitore genitore (pannelli) è importante" – fedeteka
Impostare TabStop su FALSE significa che verrà saltato quando il suo turno arriva nell'ordine di tabulazione. Normalmente si imposta TabStop per LABEL su FALSE e tutti gli altri controlli INTERATTIVI su TABSTOP = True (a meno che il controllo non sia disattivato fuori rotta).
Non saltare da scheda a scheda. L'ordine TabStop e Tab dovrebbe essere qualcosa di simile alla lista qui sotto.
Name Parent TabOrder TabStop
=======================================================
Form - 0 -
TabStrip1 Form 1 True
Tab1 TabStrip1 2 True
Label1 Tab1 3 False
Textbox1 Tab1 4 True
Label2 Tab1 5 False
Combo1 Tab1 6 True
Tab2 TabStrip1 7 True
Label3 Tab2 8 False
Textbox2 Tab2 9 True
Label4 Tab2 10 False
Combo2 Tab2 11 True
Tab3 TabStrip1 12 True
Label5 Tab3 13 False
Textbox3 Tab3 14 True
Label6 Tab3 15 False
Combo3 Tab3 16 True
Grazie per questo Zaf. Penso che tu abbia qualcosa qui. Darò questa possibilità stasera e vedrò se riesco a capire dove sono andato fuori pista – TypeM1smatch
Ho scoperto che è necessario esaminare OGNI indice di tabulazione per ogni controllo e raggruppamento di controlli (casella di gruppo, pannello, qualunque). A differenza di Classic VB, .Net non aggiorna tutti gli altri indici di tab per te. Puoi avere tutti i controlli che desideri con lo stesso indice di tabulazione su un modulo, pannello o altro tipo di raggruppamento.
BTW, per coloro che hanno pubblicato la voce di menu Visualizza - Ordine schede, grazie. Non sapevo che fosse lì e mi ha aiutato immensamente a ordinare correttamente un modulo che ho con più caselle di gruppo annidate. Questo era uno strumento eccellente per rivedere l'ordine di tabulazione. Se lo usi, assicurati di prestare attenzione a ogni livello di nidificazione.
"A proposito, per chi ha pubblicato la voce di menu Visualizza-Ordine scheda, grazie.Non sapevo che fosse lì e mi ha aiutato immensamente a ordinare correttamente un modulo che ho con più caselle di gruppo annidate. Questo era uno strumento eccellente per rivedere l'ordine di tabulazione. Se lo usi, assicurati di prestare attenzione a ogni livello di nidificazione. "Lo stesso qui! Strumento davvero bello – fedeteka
L'impostazione delle proprietà TabStop e TabIndex è in genere sufficiente. Se non funziona, controlla gli eventi nel modulo in cui potresti avere il codice che interferisce con la messa a fuoco dei controlli. – LarsTech
Grazie per il suggerimento, ma non c'è niente nel mio codice a questo punto che sta interessando il focus dei controlli – TypeM1smatch
Uso della tabella che ho disegnato sotto come modello ..... Compilalo con i tuoi TABSTOPS e TABORDER e prova a ELENCO TUTTI i controlli su il modulo. – Zeddy