Form "Got Focus" abfangen

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Form "Got Focus" abfangen

    Hi,

    Ich habe eine Anwendung A, die zeigt mir eine Liste von MAC Adressen an.

    Als zweite Anwendung B habe ich das Admin Panel meines Routers geöffnet. Da kann ich MAC Adressen markieren und in das Windows Clipboard kopieren.

    Wenn ich nun auf das Fenster der Anwendung A klicke, soll automatisch die MAC Adresse aus dem Clipboard in ein Suchfeld eingetragen werden.

    Ich habe versucht das wie folgt zu lösen:

    VB.NET-Quellcode

    1. Private Sub frmCheckMAC_GotFocus(sender As Object, e As System.EventArgs) Handles Me.GotFocus
    2. MessageBox.Show("Got Focus")
    3. 'Get search MAC from clipboard
    4. txtMAC.Text = My.Computer.Clipboard.GetText()


    Aber das funktioniert so nicht. Das Ereignis "GotFocus" wird nicht ausgelöst.

    Irgendwie verstehe ich wohl "GotFocus" falsch.

    Wie macht man das denn richtig ?

    LG
    Peter
    Das GotFocus Event wird nur ausgelöst wenn du von Form1 nach Form2 bzw. von Form2 nach Form1 wechselst. Also im selben Programm.
    Edit: Mit Me.Resize bzw. Me.Move scheint das ganze zu funktionieren. Problem ist aber das die beiden Evente auch beim bewegen bzw. beim verkleiner o. vergrößern aufgerufen werden. Gibt da aber bestimmt noch ne schönere Lösung.
    ​Smartnotr - ein intelligentes Notizprogramm
    zum Thread

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mokki“ ()

    @ErfinderDesRades Jou.
    @Peter329 Activated deckt beides ab, Fokus innerhalb von Forms einer Anwendung und Fokus zwischen verschiedenen Anwendungen.
    Bei GotFocus passiert bei ausschließlich draufklickern gar nix.
    Projekt mit 2 Formen, Form1 mit 2 Buttons und 2 Labels:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private frm2 As Form2
    3. Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles MyBase.Activated
    4. Label1.Text = "Activated"
    5. End Sub
    6. Private Sub Form1_GotFocus(sender As Object, e As System.EventArgs) Handles Me.GotFocus
    7. Label2.Text = "GotFocus"
    8. End Sub
    9. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    10. If frm2 Is Nothing OrElse frm2.IsDisposed Then
    11. frm2 = New Form2
    12. End If
    13. If Not frm2.Visible Then
    14. frm2.Show()
    15. End If
    16. End Sub
    17. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    18. Label1.Text = ""
    19. Label2.Text = ""
    20. End Sub
    21. End Class
    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!