Brauch Hilfe um den "Focus" auf den richtigen "Richtextbox" zu richten

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Kokett.

    Brauch Hilfe um den "Focus" auf den richtigen "Richtextbox" zu richten

    Ich habe eine Variable i definiert und möchte gerne den Focus auf den richtigen Richtextbox richten. Leider funktioniert es nicht und ich verstehe nicht warum. 8|

    VB.NET-Quellcode

    1. RichTextBox(i).Focus()


    Es soll dann ungefähr so sein (Beispiel):

    VB.NET-Quellcode

    1. RichTextBox1.Focus()
    2. RichTextBox17.Focus()
    3. RichTextBox8.Focus()
    4. .
    5. .
    6. .
    7. .

    @Kokett Willkommen im Forum. :thumbup:
    Welchen Sinn hat es, wenn Du nacheinander mehere RichTextBoxen mit .Focus() aufrufst?
    Von wieviel RichTextBoxen reden wir hier?
    Bereits die RichTextBox8 scheint mir ein krasses Fehldesign zu sein. Kannst Du sdas mal kurz beschreiben?
    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!
    Danke für die Begrüßung))

    Mit 8 habe ich eindeutig übertrieben)) Aber wollte halt wissen wie es bei ganz vielen Richtextboxen funktioniert

    Translit-Programm: Zwei Richtextboxen, je nach dem in welchem Box man sich befindet sollen sich die Knöpfe automatisch anpassen: kyrillischer oder lateinischer Schrift

    In jedem Knopf eine If-Anweisung zu schreiben scheint mir sinnlos zu sein!

    Bild: bilder-upload.eu/show.php?file=03ef0c-1523208933.jpg

    Ich wollte am Anfang des Programms den Focus abfragen

    VB.NET-Quellcode

    1. Public FokusOnRichTextBox As Integer
    2. Private Sub RichTextBox1_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.GotFocus
    3. FokusOnRichTextBox = 1
    4. End Sub
    5. Private Sub RichTextBox2_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox2.GotFocus
    6. FokusOnRichTextBox = 2
    7. End Sub


    und dann im Knopf einfach das hier schreiben

    VB.NET-Quellcode

    1. RichTextBox(i).Focus()

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Kokett“ ()

    Auch von mir ein herzlich Willkommen.
    CE-Indices gab es bis VB6. Inzwischen können CEs wie Deine RTB keinen gleichen Namen haben. Daher RichTextBox1, RichTextBox2, etc. Es wäre daher einfacher, wenn sich Dein Programm nicht einen Index merkt, sondern das CE selber:

    VB.NET-Quellcode

    1. Public RichTextBoxToFocus As Control = Nothing
    2. Private Sub RichTextBox1_GotFocus(sender As Object, e As EventArgs) Handles RichTextBox1.GotFocus
    3. RichTextBoxToFocus = DirectCast(sender, Control)
    4. End Sub
    5. Private Sub RichTextBox2_GotFocus(sender As Object, e As EventArgs) Handles RichTextBox2.GotFocus
    6. RichTextBoxToFocus = DirectCast(sender, Control)
    7. End Sub
    8. '...
    9. RichTextBoxToFocus.Focus()
    oder kürzer:

    VB.NET-Quellcode

    1. Private Sub RichTextBox_GotFocus(sender As Object, e As EventArgs) Handles RichTextBox1.GotFocus, RichTextBox2.GotFocus
    2. RichTextBoxToFocus = DirectCast(sender, Control)
    3. End Sub
    Da verarbeitet eine Prozedur die Events von 2 RTBs.
    btw: .Focus ist offiziell nur für interne Zwecke gedacht, daher taucht es nicht bei IntelliSense auf. .Select() ist der offizielle Befehl.
    Und: externe Bilderverlinkung ist nicht gern gesehen. Das Forum bietet über die [Erweiterte Antwort] einen Bilderupload. Da sieht man auch das Bild sofort.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich bin echt überascht, alles funktioniert prima und ist noch kompakter geworden, Viele-Vielen Dank!!!

    Nochmal für alle ,die nicht alles lesen wollen:

    Inhalt der Form

    VB.NET-Quellcode

    1. Public RichTextBoxToFocus As Control = Nothing
    2. Private Sub RichTextBox_GotFocus(ByVal sender As Object, ByVal e As EventArgs) Handles RichTextBox1.GotFocus, RichTextBox2.GotFocus
    3. RichTextBoxToFocus = DirectCast(sender, Control)
    4. End Sub



    Inhalt des Knopfs

    VB.NET-Quellcode

    1. ...
    2. ....
    3. RichTextBoxToFocus.Focus()
    4. ...
    5. ..