Registerkarte umschalten bei Drücken der Returntaste

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Memo.

    Registerkarte umschalten bei Drücken der Returntaste

    Hallo

    bin neu hier im Forum, und bitte um etwas Hilfe bei ein paar Dingen. Schon mal jetzt danke für die Antworten.

    Zu meinem Problem:

    Ich habe eine Form erstellt, und in der Form ein Register aus der Toolbox eingefügt. Das Register hat 3 Reiter.

    Nun zu dem Problem: Ich hätte gerne dass der Reiter eins weiter springt (aktiv wird), sobald man die Return-Taste drückt.

    Wäre das mit ein paar Befehlen realisierbar oder wäre es mit einem größeren Aufwand verbunden? Gut wären nachvollziehbare Lösungsbeispiele oder so etwas in der Richtung. Muss dazu sagen dass ich noch nicht all zu lange mit Vb programmiere. Die Lösung meines Problems sollte sich also auch für Anfänger eignen.

    Ich bedanke mich für jede Antwort (die in irgend einer Form mit diesem Thema zu tun hat) ;)

    Danke!
    Danke für die schnelle Antwort :thumbup:

    Nun, es sollte erst dann funktionieren wenn ein paar Buttons geklickt wurden. Es sind Buttons die etwas in TextBoxen eintragen. Müsste es dann heissen dass man bei jedem Button am Ende noch eine Tastenabfrage-Schleife einfügt?

    Es sollte möglich sein wärend der Computer auf die Returt-Taste wartet trotzdem noch die Buttons benutzt werden können. Wäre es auch möglich dass man die Tastenabfrage auf bestimmte Register begrenzt? Z.b. Bei Register 1 und 2 sollte es Funktionieren und bei Register 3 schon nicht.
    Also so in etwa

    VB.NET-Quellcode

    1. Button1_Click(......)
    2. ' Dein Code.....
    3. 'Register Karte anwählen
    4. End Sub


    VB.NET-Quellcode

    1. If TabControl_Main.SelectedTab Is Tab_Pag_Kurse Then
    2. Sub_Tabelle_Einlesen()
    3. End If

    VB.NET-Quellcode

    1. ' TabPage anzeigen
    2. Select Case UserValue.Type
    3. Case 0 ' MulipleChoice
    4. TabControl1.SelectTab(TabPage2)
    5. Case 1 ' Kartei Karten
    6. TabControl1.SelectTab(TabPage3)
    7. Case 2 ' Wörter Schreiben
    8. TabControl1.SelectTab(TabPage3)
    9. End Select

    VB.NET-Quellcode

    1. ' Tab' Umleiten also auswählen
    2. Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    3. If TabControl1.SelectedIndex = 0 Then
    4. TabControl1.SelectTab(TabPage1)
    5. Else
    6. Select Case UserValue.Type
    7. Case 0 ' MulipleChoice
    8. TabControl1.SelectTab(TP_MultipleChoise)
    9. Case 1 ' Kartei Karten
    10. TabControl1.SelectTab(TP_KarteiKarten)
    11. Case 2 ' Wörter Schreiben
    12. TabControl1.SelectTab(TB_WoerterSchreiben)
    13. End Select
    14. End If
    15. End Sub



    Mal n paar Beispiele zum tüfteln.

    Schbezzy schrieb:

    Nun, es sollte erst dann funktionieren wenn ein paar Buttons geklickt wurden. Es sind Buttons die etwas in TextBoxen eintragen. Müsste es dann heissen dass man bei jedem Button am Ende noch eine Tastenabfrage-Schleife einfügt?

    Das ist eine Aufgabe für Validierung. gugge Control.Validating + ErrorProvider, da werden auch Gruppen von Controls validiert.

    Machs erstmal mit einem Button, bei dem kannste später immernoch die Default-Property setzen, dasser auch auf die Entertaste reagiert.
    Hm. Momentan versteh ich das nicht so richtig. :huh:
    Also der Begriff Validierung ist mir gänzlich unbekannt. War aber nicht faul sondern hab gegoogelt.
    Ist das (so wie ich es verstanden habe) ein Ausschlussverfahren mit dem man die ganze sache eingrezen kann?
    Sorry aber ich bin fast noch Anfänger in der Geschichte.

    @Bernd

    Select Case sagt mir was. Aber was ist das mit dem Type? Könntest du mir das vielleicht erklären? Und wie hängt es zusammen?

    Vielen Dank schonmal
    Also ich hab jetzt mal rausgefunden wie das Dingens funzt.

    VB.NET-Quellcode

    1. Private Sub TabControl1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TabControl1.KeyDown
    2. If e.KeyCode = Keys.Enter And TabControl1.SelectedIndex = 0 Then
    3. Me.TabControl1.SelectedIndex = 1
    4. ElseIf e.KeyCode = Keys.Enter And TabControl1.SelectedIndex = 1 Then
    5. Me.TabControl1.SelectedIndex = 0
    6. End If
    7. End Sub


    Nur leider stoße ich wieder auf Probleme.
    Irgend wie muss ich bevor ich die Entertaste drücke den Fokus auf den Tab bringen. Wenn zucor ein Button geklickt wird kann ich nicht mehr das Ereignis auslösen. Wie ändere ich den Fokus von dem button auf die Registerkarte?

    Schbezzy schrieb:

    Also der Begriff Validierung ist mir gänzlich unbekannt. War aber nicht faul sondern hab gegoogelt.

    Bist du denn auch mal dem gegebenen Link gefolgt, und hast das Sample ausprobiert?

    google ist doch ein ziemlich mieses Hilfsmittel, da kriegsteja jeden Schrott angeliefert, und wie trennste die Spreu vom Weizen, grad wenndedich nicht auskennst?

    Eine Übersicht zu Recherche-methoden: Möglichkeiten der Informationsgewinnung
    Ich habe mal eine TextBox in TabPage1 gezogen. Folgenden Code haust du dann in der TextBox.

    VB.NET-Quellcode

    1. Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
    2. ' wobei Enter Scheiße ist. Sofort bein auswählen löst der driss aus.
    3. 'TabControl1.SelectedTab = TabPage2
    4. End Sub
    5. Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    6. 'Besser ist das hier
    7. If e.KeyCode = Keys.Enter Then
    8. TabControl1.SelectedTab = TabPage2
    9. End If
    10. End Sub

    Nach der Eingabe deines Text, haust du auf die ENTER Taste. Dann springt er nach TabPage2.

    Select Case

    Beispiel:

    VB.NET-Quellcode

    1. Private Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    2. Select Case TabControl1.SelectedIndex
    3. Case 0
    4. MessageBox.Show(TabControl1.SelectedIndex)
    5. MessageBox.Show(TabControl1.SelectedTab.Name)
    6. Case 1
    7. MessageBox.Show(TabControl1.SelectedIndex)
    8. MessageBox.Show(TabControl1.SelectedTab.Name)
    9. End Select
    10. End Sub
    @ ErfinderDesRades

    natürlich bin ich dem Link nachgegangen. Konnte aber mit dem was da stand nicht viel anfangen. Hatte keinen bezug.
    Das mit dem Googeln ist auch nur so gesagt. Meine erste anlaufstelle in allen sachen ist eigentlich immer Wiki. Dort gabs dann auch auskunft.
    Trotzdenk danke für den Link.

    @Bernd

    danke für die Code-Beispiele, werd es heut oder morgen mal ausprobieren. Melde mich dann obs funktioniert.
    erstaunlich, dass du den Bezug nicht siehst

    in post#5 nenne ich genau den Bezug: Wenn etwas erst möglich sein soll, nachdem bestimmte Eingaben vorgenommen wurden, nennt man das Validierung.
    Sind die Eingaben valide, kanns weitergehen, andernfalls wird der Focus auf genau denjenigen Controls festgehalten, wo die Eingaben inkorrekt sind.
    das ganze ist dermaßen ausgereift, dasses sogar ein Extra-Event dafür gibt, wo man die Überprüfungen vornimmt, und wenn man da e.Cancel setzt, braucht man nix weiter machen.
    @Te: Würdest du einen Taschenrechner so machen wie:

    VB.NET-Quellcode

    1. If tb_eingabe.Text = "1+1" Then
    2. tb_ergebnis = "2"
    3. Else If tb_eingabe.Text = "1+2" Then
    4. tb_ergebnis = "3"
    5. End If

    So schaut mir dein Code zum Tab wechseln aber aus ^^
    Warum nicht:

    VB.NET-Quellcode

    1. If TabControl1.SelectedTabIndex = TabControl1.TabPages.Count - 1 Then Exit Sub
    2. TabControl1.SelectedIndex += 1