Testen ob Form aktiv

  • VB.NET

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

    Testen ob Form aktiv

    Hey Leute ich habe ein kleines Problem da ich Einen Chat programmiert habe und der, wenn ich eine Nachricht bekommen habe, mir mit einem Notify Icon eine Nachricht anzeigt und diese aber auch wenn das Fenster Aktiv ist das soll verhindert werden aber wie?

    Danke im vorraus
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down
    @Toni03 Falls Du meinst, dass Du checken möchtest, ob Deine Form den Fokus hat, genügt dies:

    VB.NET-Quellcode

    1. If Me.Focused Then
    2. ' hat Fokus
    3. End If
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Gut das klappt schon mal allerdings werden nun die Nachrichten in dem Notify Icon gar nicht mehr angezeigt auch wenn das Fenster inaktiv ist.
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down
    Es kommt ne Nachricht => Im NotifyIcon kommt ein Hinweis und im Hauptfenster auch. Jetzt kommt es drauf an, was Du aus dem Code von RFG machst.

    VB.NET-Quellcode

    1. If Not Me.Focused Then
    2. 'schicke Nachricht an NotifyIcon
    3. End If

    btw: Punkt und Komma gehören nicht nur an das Ende eines Posts. Ohne die ist es echt schwierig, die Texte zu lesen.  :S 
    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.

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

    VB.NET-Quellcode

    1. If Mutebtn.Text = "Mute" Then
    2. If Me.Focused Then
    3. Chatntf.ShowBalloonTip(1000, "Chatagram", Message, ToolTipIcon.Info)
    4. End If
    5. End If

    Das ist bei mir der Code für die Stelle.
    Wenn ich ein 'not' vor das 'Me.Focused' mache dann bekomme ich immer die Nachricht.
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down
    @Toni03 Du hast im Wesentlichen zwei Fälle.
    Es kommt ein Notify und Du hast den Fokus
    oder
    es kommt ein Notify und Du hast den Fokus nicht.
    Überleg genau, was wann passieren soll.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Hallo @Toni03,

    So erst mal eben kurz zu dem Me.Focused... Ich weiß nicht warum aber ich hatte damit an für sich teilweise das Problem das die Anwendung angeblich den Focus verloren hat (manchmal ist das aufgetreten und manchmal nicht, in der selben Anwendung xD) obwohl diese noch im Focus war daher nutze ich meistens Me.Deactivate Me.Activated und setze mir einfach ne Variable

    VB.NET-Quellcode

    1. Public allowBallonTip As Boolean
    2. Private Sub Form1_Deactivate(sender As Object, e As EventArgs) Handles Me.Deactivate
    3. allowBallonTip = False
    4. End Sub
    5. Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated
    6. allowBallonTip = True
    7. End Sub
    8. Public Sub showBallonTip()
    9. If allowBallonTip Then
    10. Chatntf.ShowBalloonTip(1000, "Chatagram", Message, ToolTipIcon.Info)
    11. End If
    12. End Sub
    Trainii: 5.0%
    Abstandshalter
    Unfortunately, this Signature is not available in Germany because it may contain music for which GEMA
    has not granted the respective music rights. Sorry about that.

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

    VB.NET-Quellcode

    1. Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated
    2. Label14.Text = "1"
    3. End Sub
    4. Private Sub Form1_Deactivate(sender As Object, e As EventArgs) Handles Me.Deactivate
    5. Label14.Text = "0"
    6. End Sub

    ...

    VB.NET-Quellcode

    1. If Mutebtn.Text = "Mute" Then
    2. If Not Label14.Text = "1" Then
    3. Chatntf.ShowBalloonTip(1000, "Chatagram", Message, ToolTipIcon.Info)
    4. End If
    5. End If
    6. End If


    So hab ich es gemacht
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down
    @Toni03 Da haste aber gleich mehrere Prinzipien der OOP von hinten usw.
    • Trenne Daten und GUI.
    • Benutze kein Control zur Speicherung von Zuständen.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!