Form Event bei "maximieren"

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von mcdt.

    Form Event bei "maximieren"

    hallo,
    ich habe mal wieder eine frage ...

    also, ich habe bei meiner form die eigenschaft topmost auf true gesetzt.
    während meiner abläufe setze ich diese eigenschaft wieder auf false und die größe auf 20*20, also quasi nicht sichtbar.
    dann rückt die form in den hintergrund wenn ich bediene.

    jetzt möchte ich aber gerne während des bediens, wenn ich auf das form icon in der taskleiste klicke bestimmte befehle ausführen, also wenn die form wieder im fordergrund ist, jetzt ist nur die frage welches ereignis dann getriggert wird wenn ich auf das icon klicke.

    hoffe das ich mich verständlich ausgedrückt habe :)


    wäre nett wenn mir jemand helfen könnte.


    mfg
    Welches Icon in der Taskleiste?
    Also du meinst nicht ein NotifyIcon oder? Also dann wäre es natürlich beim Click oder doubeclick

    Meinst du beim Icon wo nachher der Titel der Form steht z.B. [Icon] Form1
    Also wenn die Form wieder hergestellt, beziehungsweise in den Vordergrund geholt wird?
    Falls du das meinst, kannst du mit einem Timer (Interval=1) überprüfen, ob die Form gerade aktiv ist.
    Den Code gibts hier:
    activevb.de/tipps/vb6tipps/tipp0216.html

    Und dann kannst du je nachdem, ob das Fenster aktiv ist oder nicht, die Befehle ausführen
    hi,
    habe den code mal probiert, und es funktioniert nicht, kann es sein das es probleme gibt da der code für vb5/6 ist und ich vb2008 nutze?

    es erscheint folgender fehler :

    Error 1 'hWnd' is not a member of 'MeineForm.Form1'.
    Error 2 'Caption' is not a member of 'MeineForm.Form1'.
    Error 3 'Caption' is not a member of 'MeineForm.Form1'.

    Edit:

    ach ja, ich meine auch das was du beschreiben hast, also da wo die programme abgelegt werden, wenn sie minimiert sind.

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

    Mmh... Ich schaue den Code auch mal an...
    ------------------
    Edit: Auf der Seite wo der Code ist, ist ein Link "Download des Beispielprojektes [1,71 KB]"
    Wenn du dort drauf klickst, kannst du die Datei runterladen. Öffne Sie in Visual Basic 2008 (Exp. Edi.). Dann wird der Code umgewandelt, damit er funktioniert. Dann kannst du den richtigen Code anschauen.
    Hab es ausprobiert, es ging
    Code:

    VB.NET-Quellcode

    1. Option Strict Off
    2. Option Explicit On
    3. Friend Class Form1
    4. Inherits System.Windows.Forms.Form
    5. 'Dieser Source stammt von http://www.activevb.de
    6. 'und kann frei verwendet werden. Für eventuelle Schäden
    7. 'wird nicht gehaftet.
    8. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
    9. 'Ansonsten viel Spaß und Erfolg mit diesem Source !
    10. Private Declare Function GetActiveWindow Lib "user32" () As Integer
    11. Dim bFocus As Boolean
    12. Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
    13. Timer1.Interval = 50
    14. Timer1.Enabled = True
    15. End Sub
    16. Private Sub Timer1_Tick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Timer1.Tick
    17. Dim hWnd As Integer
    18. hWnd = GetActiveWindow
    19. If hWnd = Me.Handle.ToInt32 Then
    20. If bFocus = False Then
    21. bFocus = True
    22. Me.Text = "Aktives Fenster"
    23. End If
    24. Else
    25. If bFocus = True Then
    26. bFocus = False
    27. Me.Text = "Nicht aktiv"
    28. End If
    29. End If
    30. End Sub
    31. End Class