none
Focus in Textfeld im Tabcontrol RRS feed

  • Frage

  • Hallo!
    Ich bin hier am verzweifeln.
    Ich habe eine Form mit einem TabControl mit vier Tabs.
    In jedem der Tabs sind mehr oder wenige TextBoxen.
    Nun möchte ich beim starten der Anwendung den ersten TabControl in den Vordergrund holen, sodass der immer als erster zu sehen ist. Anschliessend soll der Focus für die Eingabe auf eine TextBox gesetzt werden.
    Dieses sollte ich mittels TextBox1.Focus() erreichen.
    Ein überprüfen eines eigens generierten Objects (nennen wir es einfach dim a as Object) und der Zuweisung von a=TextBox1.Focused() ergibt True, also scheint der Focus auf der TextBox1 zu liegen. Problem ist, dass der Focus nicht sichtbar ist, bzw. keine Eingabe erfolgen kann.
    Ohne den TabControl, also direkt in der Form, funktioniert das. Gibt es etwas was ich nicht beachtet habe?
    Danke und Gruß
    Jürgen

    P.S. Komme aus dem VB6 Umfled und arbeite mich gerade in die 2005er Version ein
    Samstag, 24. März 2007 10:15

Antworten

  • Hi!
    Danke für den Tipp, aber ich wollte eigentlich wissen wie ich einen bestimmten TAB (TabPage2) beim Start in den Vordergrund hole. Dieses habe ich inzwischen herausgefunden. Der Focus wird auch auf das gewünschte Textfeld gesetzt.

    Me.TabControl1.SelectedIndex = 1 // holt das Tabpage 2 inden Vordergrund

    Me.ActiveControl = Me.txtEingabe // setzt den Fokus auf das Textfeld

    Soweit so gut. Welches Event ist für den Wechsle der einzelen TabPages mittels der Maus zuständig? Wie kann ich das abfragen?
    Danke!
    Gruß Mercyful


    Mittwoch, 25. April 2007 13:32
  • HI,

     

    da du den Tab mit der Eigenschaft .SelectedIndex änderst, ist das entsprechende Event für Änderungen der aktuellen Tab das

    SelectedIndexChanged-Event. Es wird aber immer ausgelöst, wenn das aktuelle Tab geändert wird, und nicht nur wenn du mit der Maus raufklickst, sondern auch, wenn du mit der Tastatur "hinnavigiertst".

     

     

    cu

    Mittwoch, 25. April 2007 14:36

Alle Antworten

  • Hi,

     

    versuche anstelle der .Focus-Methode folgenden Aufruf:

        Me.ActiveControl = Me.TextBox1 'unter der Voraussetzung, dass TextBox1 die TextBox sein soll, die fokusiert werden soll

     

    MfG

    Montag, 26. März 2007 17:19
  • Hi!
    Danke für den Tipp, aber ich wollte eigentlich wissen wie ich einen bestimmten TAB (TabPage2) beim Start in den Vordergrund hole. Dieses habe ich inzwischen herausgefunden. Der Focus wird auch auf das gewünschte Textfeld gesetzt.

    Me.TabControl1.SelectedIndex = 1 // holt das Tabpage 2 inden Vordergrund

    Me.ActiveControl = Me.txtEingabe // setzt den Fokus auf das Textfeld

    Soweit so gut. Welches Event ist für den Wechsle der einzelen TabPages mittels der Maus zuständig? Wie kann ich das abfragen?
    Danke!
    Gruß Mercyful


    Mittwoch, 25. April 2007 13:32
  • HI,

     

    da du den Tab mit der Eigenschaft .SelectedIndex änderst, ist das entsprechende Event für Änderungen der aktuellen Tab das

    SelectedIndexChanged-Event. Es wird aber immer ausgelöst, wenn das aktuelle Tab geändert wird, und nicht nur wenn du mit der Maus raufklickst, sondern auch, wenn du mit der Tastatur "hinnavigiertst".

     

     

    cu

    Mittwoch, 25. April 2007 14:36
  • Hallo,

     

    ich habe dasselbe Problem mit dem Fokus unter C#:

     

    Ich hab in meinem Formular eine treeView mit welcher ich in einem tabControl navigiere.

    Für den Focus auf ein Textfeld in einem Tab habe ich folgendes versucht aber es wird kein Fokus gesetzt:

     

    if (e.Node.Text.Equals("tabPage"))

    {

        tabControl.SelectedTab = this.tabPage;

        this.ActiveControl = this.textBox;

        //this.textBox.Focus();

    }

     

    Danke!

    Samstag, 6. Oktober 2007 15:42