Tab-Reihenfolge: Vom Hauptform ins Unterform mittels Tab springen und zurück

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Tab-Reihenfolge: Vom Hauptform ins Unterform mittels Tab springen und zurück

    Hallo zusammen,

    ich habe folgendes Problem. Habe schon sämtliche Foren durchsucht und Google bemüht, aber eine Antwort auf meine Frage leider nirgends gefunden. :(

    Ich habe ein Form. In dem Form habe ich ein Panel in das ich zur Laufzeit ein anderes Form (ähnlich dem MDI-Child in VB6) hineinlade.

    Quellcode

    1. dim meinForm as New frmMeinForm
    2. me.meinPanel.Controls.Add(meinForm)


    Mein Problem ist jetzt, dass ich jetzt egal, wie ich es auch versuche, nicht hinbekomme, von einem Steuerelement des Hauptfensters in ein Steuerelement des Forms im Panel mit Tab zu springen. Wenn ich dann mit der Maus auf ein Steuerelement im eingefügten Form klicke und mit Tab weiterspringen will, bleibe ich immer im eingefügten Form und komme nicht mehr zurück in das Hauptform.

    Ich hoffe ich konnte mich verständlich ausdrücken. Bin für jeden Lösungsansatz dankbar.

    Gruß

    Johannes
    Bin mir nicht sicher, ob es funktioniert, aber Du könntest mal so versuchen:
    Property KeyPreview von den ChildForms auf True setzen, danach die TAB-Taste im KeyDown-Event abfangen und STRG+TAB mithilfe von SendKeys "drücken".

    VB.NET-Quellcode

    1. Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    2. If e.KeyData = Keys.Tab Then SendKeys.Send("^{TAB}")
    3. End Sub

    enjo7 schrieb:

    Ich habe ein Form. In dem Form habe ich ein Panel in das ich zur Laufzeit ein anderes Form (ähnlich dem MDI-Child in VB6) hineinlade.

    Forms sind nicht dafür vorgesehen, als Controls in Panels geladen zu werden.
    Nimm besser ein UserControl.
    Das kannst du genauso designen wie ein Form, und dassis halt dafür vorgesehen.

    Das wäre der erste Schritt. Vorher kann der 2. Schritt nicht erfolgen:

    Du kanns die Tab-Reihenfolge sehr bequem festlegen, wenn du folgende Ansicht aktivierst:
    Menü-Ansicht-AktivierReihenfolge

    Damit kannste die AktivierReihenfolge im HauptFenster festlegen, bis zu dem Punkt, wann dein UserControl aktiviert wird, und im Usercontrol legste ebenso die Reihenfolge der dortigen Controls fest

    enjo7 schrieb:

    Finde es aber total ärgerlich wenn die Funktion angeboten und nicht ordentlich unterstützt wird.

    mit Funktion meinst du die Möglichkeit, ein Form in ein Form einzubetten? Das hängt mit dem OOP - Paradigma zusammen. Form erbt von control, und beinhaltet daher auch alles, was control kann (zB. einem Panel zugefügt werden). Bei Form will man das nicht, aber es ist halt mit-vererbt, und aus dem geerbten bestimmte für den Erben (hier: Form) unnütze Dinge wieder auszuschließen ist nicht wirklich möglich.