Von TabControl zu Tabcontrol springen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Grafzahl.

    Von TabControl zu Tabcontrol springen

    Hallo,

    ich möchte auf meiner Form von einem TabControl zum nächsten springen. Über einen AddHandler kann ich von den einzelnen TabControls die Tabpags durchwandern.Da dieser Addhandler in einer zentralen Klasse steht, welche für die Formgenerierung benötigt wird, reagieren bei mehren TabControls auf einer Form alle auf diesen Befehl, dies möcht ich jetzt verhindern, sprich ein TabControl erhält den Focus und wenn ich eine bestimmte Taste drücke erhält das nächste TabControl den Focus.Vielen Dank
    Ich verstehe nur Bahnhof.
    Da dieser Addhandler in einer zentralen Klasse steht, welche für die Formgenerierung benötigt wird, reagieren bei mehren TabControls auf einer Form alle auf diesen Befehl, dies möcht ich jetzt verhindern

    Die Logik musst du mir noch erklären. BTW solltest du mit dem Wort AddHandler vorsichtig umgehen, wenn du nicht sicher bist was das heißt. AddHandler ist nämlich eine Anweisung.
    Ich erahne, dass du Aktionen ausführen willst, wenn eine Taste gedrückt wird.
    Wenn dann nicht das gewünschte passiert, dann ist doch logischerweise die Implementierung falsch.

    Versuche nochmal dein Problem zu beschreiben, eventuell an einem kurzen Code-Beispiel.

    Ich kenne auch keine zentrale Klasse, sondern nur den zentralen Grenzwertsatz...
    @Grafzahl: Willkommen im Forum.
    Wenn ein Reiter eines Tabs im TabControl den Fokus hat (draufklicken), kannst Du mit der Tastenkombination Ctrl+TAB alle TabPages durchklickern.
    Bei 2 (mehreren) TabControls kannst Du zwischen ihnen und anderen Controls mit der Taste TAB wechseln, wenn ein Reiter eines Tabs im TabControl den Fokus hat.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Der Quellcode steht in einer Klasse welche zum festlegen von diversen Eigenschaften der einzelnen Formulare dient, z.B wird dort die Fenstergröße festgelegt, die Position wo das Fenster geöffnet wird etc.
    So schaut das ganze aus. Jetzt möchte ich aber verhindern das bei mehreren TabControls die Tabpages parallel zueinander durchgewandert werden. z.B durch drücken der Tab Taste zum nächsten TabControl gelangen. Ich möchte dann aber nur von TabControl zu Tabcontrol springen, ohne die anderen Objecte zu durchlaufen.

    Sorry wenn ich mich etwas unklar ausdrücke.

    VB.NET-Quellcode

    1. AddHandler frm.KeyDown, AddressOf KeyDownTabSuche
    2. Allgemeingültig so das bei drücken der Tastenkombination auf einer beliebigen Form die Tabpages durchwandert werden
    3. Private Sub KeyDownTabSuche(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    4. For Each Tab As Control In sender.Controls
    5. If TypeOf (Tab) Is TabControl Then
    6. Dim tabCont As TabControl = CType(Tab, TabControl)
    7. If e.KeyValue = Keys.R And e.Control Then
    8. If tabCont.SelectedIndex < tabCont.TabCount - 1 Then
    9. tabCont.SelectTab(tabCont.SelectedIndex + 1)
    10. Else
    11. tabCont.SelectTab(0)
    12. End If
    13. End If
    14. End If
    15. Next
    16. End Sub
    Warum willst Du die Funktionalität des Systems verbiegen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Grafzahl schrieb:

    warum verbiegen ?
    Die Systemfunktionalität ist in Post #4 beschrieben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!