2013-04-17 60 views
5

Mam formularz okna vb.net z około 15 comboboxes i 15 textbox, wraz z kilkoma innymi kontrolkami. Wszystkie te pola tekstowe i combobox znajdują się w panelach. Powodem tego jest konieczność dostosowania widocznej właściwości kontrolek w oparciu o to, co wybierze/wprowadzi użytkownik, więc grupowanie każdej etykiety i sterowanie razem we własnych panelach wydawało się łatwym sposobem na osiągnięcie tego. Ustawiłem kolejność kart przez właściwości, ale to nie działa. Kiedy przechodzę przez mój formularz, przeskakuje i nie jest zgodny z kolejnością tabulacji, którą ustawiłem. Czy to dlatego, że moje elementy sterujące znajdują się w osobnych panelach? Ustawiłem TabStop na wartość false dla wszystkiego, czego nie chcę, aby tabs był włączony, jestem nieco zdezorientowany tym, co się tutaj dzieje, wydaje się, że fakt, że moje pola combobox i textbox znajdują się wewnątrz ich paneli uniemożliwia mi Indeksy kart do działania. Czy ktoś może to potwierdzić lub mieć inne wyobrażenie o tym, co się dzieje? Indeks Tab działa po utworzeniu nowego formularza.Indeks kart nie działa z kontrolkami w panelach?

+1

Ustawianie właściwości TabStop i TabIndex zwykle wystarcza. Jeśli to nie działa, sprawdź wszystkie zdarzenia w formularzu, w których może występować kod zakłócający ustawienie kontroli. – LarsTech

+1

Dzięki za sugestię, ale w moim kodzie nie ma nic, co ma wpływ na skupienie kontroli – TypeM1smatch

+0

Używanie tabeli, którą narysowałem poniżej jako szablonu ..... Wypełnij ją swoimi TABSTOPS i TABORDER i spróbuj LISTA WSZYSTKICH kontroli forma. – Zeddy

Odpowiedz

7

Wierzcie lub nie, panel zamawiania absolutnie DOES wpływa na TabIndex. Odkryłem, że najprostszym sposobem na uporządkowanie tabulatorów w formularzu wielopanelowym jest użycie polecenia Widok> Kolejność kart zgodnie z sugestią LarsTech. Następnie, po zaznaczeniu zakładki, zobaczysz, jak panele wpływają na ogólną kolejność elementów sterujących znajdujących się w każdym panelu. Następnie kliknij lewym przyciskiem kolejno poszczególne panele w kolejności, w której chcesz płynąć. Zauważysz, że będzie on następnie automatycznie zamieniał elementy sterujące wewnątrz każdego panelu, a ogólna kolejność paneli będzie zgodna z określoną przez Ciebie. Po wykonaniu tej czynności możesz kliknąć każdą kontrolkę wewnątrz każdego panelu, aby ustawić względną kolejność tabulatora w danym panelu.

3

Spróbuj użyć "Widok - kolejność tabulatora" w projektancie Visual Studio i kliknij każdy kontener i formant w żądanej kolejności. Istotny jest indeks tabulatora kontenera nadrzędnego (paneli).

+1

Dzięki, próbowałem również, nadal nie ma kostki – TypeM1smatch

+1

@EricJ Spróbuj odtworzyć problem w nowym małym projekcie. Jeśli możesz go odtworzyć, zmień to w swoim poście. – LarsTech

+0

Prawidłowa odpowiedź. "Indeks zakładek kontenera rodzica (paneli) ma znaczenie" – fedeteka

2

Ustawienie TabStop na FALSE oznacza, że ​​zostanie pominięte, gdy jego kolej będzie zawierała kolejność kart. Normalnie ustawiasz TabStop dla LABEL na FALSE, a wszystkie inne INTERAKTYWNE Kontrolki na TABSTOP = True (chyba że kontrola jest wyłączona poza kursem).

Nie przechodź z Tab do Tab. Twoje TabStop i Tab Order powinny być podobne do poniższej listy.

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 
+1

Dzięki za to Zaf. Myślę, że coś tu robisz. Dam to dziś wieczór i zobaczę, czy mogę dowiedzieć się, gdzie się znalazłem – TypeM1smatch

1

Znalazłem, że musisz spojrzeć na indeks KAŻDEJ tablicy dla każdej kontroli i grupowania kontrolek (pole grupy, panel, cokolwiek). W przeciwieństwie do Classic VB, .Net nie aktualizuje dla Ciebie wszystkich pozostałych indeksów tabulacji. Możesz mieć dowolną liczbę elementów sterujących, korzystając z tego samego indeksu kart na formularzu, panelu lub innym typie grupowania.

BTW, dla tych, którzy napisali element menu Widok - kolejkowa, dziękuję. Nie wiedziałem, że tam jest i pomogło mi to niezmiernie poprawnie zamówić formularz, który mam z wieloma zagnieżdżonymi polami grupowymi. To było doskonałe narzędzie do przeglądania kolejności kart. Jeśli używasz tego, pamiętaj, aby zwracać uwagę na każdy poziom zagnieżdżenia.

+0

"BTW, dla tych, którzy napisali element menu" Widok - kolejność ", dziękuję.Nie wiedziałem, że tam jest i pomogło mi to niezmiernie poprawnie zamówić formularz, który mam z wieloma zagnieżdżonymi polami grupowymi. To było doskonałe narzędzie do przeglądania kolejności kart. Jeśli używasz tego, pamiętaj, aby zwracać uwagę na każdy poziom zagnieżdżania. "To samo tutaj! Naprawdę ładne narzędzie – fedeteka