Ich habe ein vb.net Windows-Formular mit etwa 15 Comboboxen und 15 Textfeldern, zusammen mit einigen anderen Steuerelementen. Alle diese Textfelder und Comboboxen befinden sich in Feldern. Der Grund dafür ist, dass ich die sichtbare Eigenschaft von Steuerelementen anpassen muss, basierend auf dem, was der Benutzer auswählt/eingibt, so dass das Gruppieren jedes Etiketts und jeder Steuerung in ihren eigenen Panels wie ein einfacher Weg erscheint, dies zu erreichen. Ich habe die Tab-Reihenfolge über Eigenschaften festgelegt, aber es funktioniert nicht. Wenn ich mein Formular durchgebe, wird es übersprungen und folgt nicht der Tab-Reihenfolge, die ich festgelegt habe. Liegt das daran, dass sich meine Steuerelemente jeweils in separaten Panels befinden? Ich habe TabStop für alles falsch gesetzt, für das ich keinen Tabstop möchte, ich bin etwas verwirrt darüber, was hier vor sich geht, es scheint wirklich, dass die Tatsache, dass meine Comboboxen und Textfelder sich jeweils in ihren eigenen Panels befinden, meine verhindert Tab Indizes funktionieren. Kann jemand das bestätigen oder andere Ideen haben, was passiert? Der Tab-Index funktioniert, wenn ich ein neues Formular erstelle.Tab-Index funktioniert nicht mit Steuerelementen in Panels?
Antwort
Ob Sie es glauben oder nicht, die Panel-Bestellung beeinflusst absolut den TabIndex. Ich habe festgestellt, dass der einfachste Weg, die Tab-Reihenfolge in einem Formular mit mehreren Feldern zu bearbeiten, die Verwendung von Ansicht> Tab-Reihenfolge ist, wie von LarsTech vorgeschlagen. Sobald die Tab-Reihenfolge sichtbar ist, können Sie sehen, wie sich die Panels auf die gesamte Anordnung der Steuerelemente in jedem Panel auswirken. Klicken Sie als Nächstes mit der linken Maustaste nacheinander auf die tatsächlichen Panels in der Reihenfolge, in der der Flow ausgeführt werden soll. Sie werden feststellen, dass die Steuerelemente in den einzelnen Bereichen automatisch untergeordnet werden. Die Reihenfolge der übergeordneten Bereiche muss in der von Ihnen festgelegten Reihenfolge liegen. Sobald dies erledigt ist, können Sie auf jedes Steuerelement in jedem Panel klicken, um die relative Tab-Reihenfolge eines Controls in einem bestimmten Panel festzulegen.
Versuchen Sie "View - Tab Reihenfolge" im Visual Studio Designer und klicken Sie auf jeden Container und Kontrolle in der gewünschten Reihenfolge. Der Tab-Index des übergeordneten Containers (Panels) ist wichtig.
Danke, ich habe das auch versucht, immer noch keine Würfel – TypeM1smatch
@EricJ Versuchen Sie, das Problem in einem neuen kleinen Projekt neu zu erstellen. Wenn Sie es neu erstellen können, bearbeiten Sie das in Ihren Beitrag. – LarsTech
Richtige Antwort. "Der Tab-Index des übergeordneten Containers (Panels) zählt" – fedeteka
Wenn TabStop auf FALSE gesetzt ist, wird es übersprungen, wenn es an der Reihe ist. Normalerweise würden Sie TabStop für LABELs auf FALSE und alle anderen INTERACTIVE-Steuerelemente auf TABSTOP = True setzen (außer das Steuerelement wird natürlich deaktiviert).
Nicht von Tab nach Tab übergehen. Ihre TabStop- und Tab-Reihenfolge sollte in etwa der folgenden Liste entsprechen.
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
Danke für diesen Zaf. Ich denke, du hast hier etwas vor. Ich werde es heute Abend versuchen und sehen, ob ich herausfinden kann, wo ich weg bin. – TypeM1smatch
Ich habe festgestellt, dass Sie auf jeden Register Index für jedes Steuerelement und Gruppierung von Steuerelementen (Gruppenfeld, Panel, was auch immer). Im Gegensatz zu Classic VB aktualisiert .Net nicht alle anderen Tab-Indizes für Sie. Sie können beliebig viele Steuerelemente mit demselben Registerindex für ein Formular, Panel oder einen anderen Gruppierungstyp verwenden.
BTW, für diejenigen, die den Menüpunkt Ansicht - Tab-Reihenfolge, danke. Ich wusste nicht, dass es da war und es hat mir enorm geholfen, ein Formular, das ich mit mehreren verschachtelten Gruppenfeldern habe, richtig zu bestellen. Dies war ein ausgezeichnetes Tool zum Überprüfen der Tab-Reihenfolge. Wenn Sie dies verwenden, achten Sie unbedingt auf jede Verschachtelungsebene.
"BTW, für diejenigen, die den View - Tab Order Menüeintrag gepostet haben, danke.Ich wusste nicht, dass es da war und es hat mir enorm geholfen, ein Formular, das ich mit mehreren verschachtelten Gruppenfeldern habe, richtig zu bestellen. Dies war ein ausgezeichnetes Tool zum Überprüfen der Tab-Reihenfolge. Wenn du dies verwendest, achte darauf, dass du auf jede Verschachtelungsebene achtest. "Das gleiche hier! Wirklich nettes Werkzeug – fedeteka
Das Festlegen der TabStop- und TabIndex-Eigenschaften ist normalerweise ausreichend. Wenn es nicht funktioniert, überprüfen Sie alle Ereignisse in Ihrem Formular, bei denen Code möglicherweise die Fokussierung von Steuerelementen beeinträchtigt. – LarsTech
Danke für den Vorschlag, aber es gibt nichts in meinem Code, der den Fokus der Kontrollen beeinflusst – TypeM1smatch
Verwenden Sie die Tabelle, die ich unten als Vorlage zeichnete ..... Befüllen Sie es mit Ihren TABSTOPS und TABORDER und versuchen Sie, alle Steuerelemente auf die Form. – Zeddy