Bei Button-Click in aktiveTextbox text schreiben

  • VB.NET

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

    Bei Button-Click in aktiveTextbox text schreiben

    Hallo,

    ich stehe gerade vor einem für mich kniffligen Problem:
    Ich habe auf einem Form mehre Textboxen (TB1, TB2, TB3, ...) und einen Button. Der Fokus/Cursor steht in einer der Textboxen und wenn ich auf den Button klicke,soll ein Text (sDummy) in die Textbox geschrieben werden, in der der Cursor steht/stand.
    Im Ersten Anlauf hab ich das fast hinbekommen

    VB.NET-Quellcode

    1. Me.ActiveControl.Text = sDummy


    Jedoch ist im Moment des Klickens ja schon der Button das aktive Steuerelement und nicht mehr die Textbox

    Wie muss ich vorgehen, um die Textbox anzusprechen/ermitteln, die noch kurz vorher den Fokus hatte?

    thx & ng - Tom
    Willkommen im Forum. :thumbup:

    TomF schrieb:

    Wie muss ich vorgehen
    Du musst Dir merken, welches die letzte aktive TextBox ist:

    VB.NET-Quellcode

    1. Private lastTb As TextBox = Nothing
    2. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    3. If lastTb IsNot Nothing Then
    4. lastTb.Text = "bla"
    5. End If
    6. End Sub
    7. Private Sub TextBox_Leave(sender As System.Object, e As System.EventArgs) Handles TextBox1.Leave, TextBox2.Leave
    8. lastTb = DirectCast(sender, TextBox)
    9. End Sub
    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 freundliche Aufnahme im Forum und die promten Antworten (auch an Dksksm).
    Ich hab das in der Kürze jetzt natürlich nicht ausprobieren können, aber ich mit dem Quellcode-Beispiel komme ich sicher weiter.
    (ansatzweise war mir das Vorgehen ja klar, aber wie findet man als Newbie die richtigen Suchbegriffe für sowas ...)

    nochmals Danke und hochstwahrscheinlich bis bald -

    TomF
    Hallo nochmals,

    wenn ich sehr viele Textboxen (in meinem Fall sind es 125) auf diese Art kontrollieren will, ist diese Vorgangsweise immer noch ratsam (Performance)?
    Gibt es für die Auflistung der TBs als Handles eine "wiffere" Lösung oder einfach alle 125 TBs aufzählen?

    thx & ng - TomF
    125 Textboxen? Wooh.

    Bist du sicher das du das nicht anders besser lösen kannst? Z.B. mit einem Datagridview?

    Wenn es über Textboxen gehen soll bleibt dir leider nix anderes übrig als die alle aufzuzählen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    TomF schrieb:

    sehr viele Textboxen (in meinem Fall sind es 125)
    sind so nicht handelbar, das ist ein Designfehler.
    Was soll das darstellen? Eine Eingabe für ein Spiel?
    Nimm Dir ggf. ein DataGridView, da kannst Du Deine "Quasi-Textboxen" anständig handeln.
    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!

    RodFromGermany schrieb:

    sind so nicht handelbar

    Naja, würde ich so nicht sagen. Mein Rekord liegt bei 3x365 Textboxen (Kalender-Ansicht), hat lange gut funktioniert. letztendlich hab ich's aber doch auf ein DGV umgebaut.
    Eine Form mit so vielen Textboxen braucht bei jedem neuzeichnen lange und ist daher für den Anwender nicht schön.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Danke euch beiden.
    ich werd's mal ausprobieren obs von der Performance her mit den vielen Textboxen passt. DataGrid hab ich mir schon angeschaut gehabt, ist aber von Gestalltungs- und Anordnungsmöglichkeiten eingeschränkt (es geht um ein Messprogramm und die Anordnung soll den Messpositionen am zu vermessenden Objekt nachempfunden sein).

    thx & ng - TomF

    TomF schrieb:

    und die Anordnung soll den Messpositionen am zu vermessenden Objekt nachempfunden sein
    Dann mach Dir ein kalibriertes Bild und lass den User da hin klicken, da hast Du eine quasi beliebige Auflösung.
    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!