10
votes

C # Indicalimiser par programme

Comment puis-je prendre une forme qui est actuellement minimisée et la restaurée à son état précédent. Je ne trouve aucun moyen de déterminer si son précédent windowstate était normal ou maximisé ; Mais je sais que les informations doivent être stockées quelque part parce que Windows n'a pas de problème le faire avec des applications sur la barre des tâches.


1 commentaires

Je ne vais pas gaspiller le temps de quelqu'un d'autre à essayer de faire revoir cela; Mais la duplicate présumée ne répond pas à ma question car sa réponse se restaurera toujours à la normale (ouverte mais non maximisée) toujours, y compris si la pré-minimisation était dans l'état maximisé.


4 Réponses :


10
votes
SendMessage(form.Handle, WM_SYSCOMMAND, SC_RESTORE, 0);

3 commentaires

Cela ne répond pas à sa question - il demande d'aller à la normale ou maximisée si le formulaire est actuellement minimisé ...


J'ai mis à jour ma réponse. J'ai mal compris la question.


C'est une solution beaucoup plus propre - très simple à mettre en œuvre.



2
votes

Si vous souhaitez stocker l'état précédent chaque fois qu'il y a un changement (optimiser / minimiser), vous devez accroître l'événement SIZCHANGED , selon Ce message sur MSDN . Vous pouvez obtenir le windowstate là et le stocker.


1 commentaires

Il y a une meilleure option que de stocker cela vous-même. Il est déjà suivi par l'API Windows.



11
votes

Il n'y a pas d'API gérée pour cela. La façon de le faire est d'utiliser Pinvoke getWindowPlacement et vérifier wpf_restoretomaximized < /code >.

for Détails, voir cette Microsoft Comment (qui démontre la technique En VB).

en C #, ce serait: xxx


2 commentaires

@Dan: Merci - j'ai corrigé les erreurs - (je tapais à la volée et copier à partir de Pinvoke.net, qui avait le problème Ref / Out ...)


@Dan: On dirait que cela a travaillé pour vous, au moins, au moins;)



3
votes

Vous pouvez suivre les modifications de l'état de la fenêtre via l'événement de redimensionnement. Comme ceci: xxx


0 commentaires