VB.NET - Wie kann die Border der aktiven Textbox (Textbox hat Focus) markiert werden?

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von Gather.

    Uch, VaporiZed, bei dieser Aussage verstehe ich mal wieder nur Bahnhof.
    Wann ist "dann"?
    Und nochmal: Meine LinkAllMyBeautifulTextBoxes stehen in einer ganz normalen Form, bzw. vielen ganz normalen Form's. Sie selbst werden über eine Class, mit Inherits TextBox erbt, (benutzer-)definiert.
    Den letzten Satz blick ich zwar wiederum nicht, aber ist ja m.E. nicht so wichtig. Wie gesagt: Ja, Du kannst jene Sub in ein Modul packen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Angenommen, Du das Form1, Form2, Form3. Jedes Formular hat 3 TextBoxen, die an jene Modulfunktion MySpecialSub gekoppelt werden. Wenn Du Dich dann in MySpecialSub befindest, kannst Du zwar mit dem sender-Objekt auf die TextBoxen zugreifen, aber alles was in Form1 und Co. nicht Public definiert ist, ist innerhalb des Moduls nicht zugreifbar. Und jetzt musst Du entscheiden, ob das für Dich in Ordnung ist. Um mehr geht es mir momentan nicht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Wie von @VaporiZed schon erwähnt, kannst du einfach die AddHandler Methode verwenden.
    Du kannst somit zum Beispiel mit einer For Schleife einfach alle Controls auf deiner Form durchlaufen lassen,
    überprüfen ob es sich dabei um eine Textbox (oder ein anderes Control) handelt, und fügst diesem dann die Handler hinzu:

    VB.NET-Quellcode

    1. Private Sub InitHandlers(host As Control)
    2. For Each ctrl In host.Controls
    3. If TypeOf ctrl Is TextBox Then 'Textbox einfach in deine eigene Klasse umändern. Z.B. MyCustomTextbox
    4. Dim tb As TextBox = CType(ctrl, TextBox) 'Hier ebenfalls
    5. AddHandler tb.GotFocus, AddressOf UpdateForm
    6. AddHandler tb.LostFocus, AddressOf UpdateForm
    7. End If
    8. Next
    9. End Sub


    In diesem Beispiel wird beim Aufrufen der Methode jeder Textbox auf dem Host Control (z.B. die Form) die zwei Handler hinzugefügt.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Joooop, Henry, genau das ist es !!! Danke. Prima. Super.

    Ich muß es zwar noch ein bißchen abändern, aber vom Prinzip her ist
    >>Windows.Forms.ControlPaint.DrawBorder<<
    genau das was ich mir vorgestellt hatte.


    Solange ich die Spielerei mit dem timer dringelassen habe, ist mir allerdings mein komplettes VS gnadenlos abgestürzt. Wer's einsetzt, sollte das noch genauer ansehen.
    .
    .
    .
    .
    Also umgebaut und eingesetzt. Setzt es perfekt von z.B. rotem Rahmen wieder auf das ursprüngliche Aussehen zurück.
    Henry, hab vielen Dank. Ich schließ Dich in mein Nachtgebet mit ein .....

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „claus“ ()

    ist auch ziemlich reccourcenfressend, durchgehen pro Textbox immer einen Timer laufen zu lassen.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!