VB 2005 : Fenêtre toujours au premier plan ? Problème avec TopMost = True [Résolu]

addamsmercredi 121 Messages postés dimanche 3 octobre 2004Date d'inscription 27 juillet 2006 Dernière intervention - 6 juin 2006 à 12:29 - Dernière réponse : addamsmercredi 121 Messages postés dimanche 3 octobre 2004Date d'inscription 27 juillet 2006 Dernière intervention
- 6 juin 2006 à 17:16
Bonjour à tous,
Avec Visual Basic 2005, je cherche à créer des fenêtres qui soient toujours au premier plan de l'application mais, contrairement avec la propriété TopMost à vrai, pas par rapport aux autres applications.
Je voudrais avoir exactement le même résultat qu'avec les boîtes de dialogue Rechercher dans le Bloc-notes ou dans Internet Explorer.
J'ai essayé sans succès en modifiant dynamiquement la propriété TopMost ou avec l'API SetWindowPos mais sous VB 2005, cette dernière provoque une erreur PInvokeStackImbalance.
Quelqu'un sait-il comment faire ?
Merci d'avance.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
NHenry 14182 Messages postés vendredi 14 mars 2003Date d'inscription 25 mai 2018 Dernière intervention - 6 juin 2006 à 12:35
3
Merci
Bonjour

Tu as essayer .Show(FormMère) ou showdialog ?

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>

Merci NHenry 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de NHenry
addamsmercredi 121 Messages postés dimanche 3 octobre 2004Date d'inscription 27 juillet 2006 Dernière intervention - 6 juin 2006 à 12:58
0
Merci
Show ne me convient pas car si l'uitlisateur clique à côté de la fenêtre, elle passe systématiquement en-dessous.
Et ShowDialog ne me convient encore moins car l'utilisateur ne peut plus du tout aller sur la fenêtre principale.


Mais merci pour la réponse.
Commenter la réponse de addamsmercredi
NHenry 14182 Messages postés vendredi 14 mars 2003Date d'inscription 25 mai 2018 Dernière intervention - 6 juin 2006 à 13:05
0
Merci
Bonjour

Essaye, je crois qu'il y a un evenement pour savoir quand ta form est déselectionnée, tu fais un test, et si aucune de tes forms n'est active, tu met TopMost à False sinon, à true.

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
Commenter la réponse de NHenry
addamsmercredi 121 Messages postés dimanche 3 octobre 2004Date d'inscription 27 juillet 2006 Dernière intervention - 6 juin 2006 à 13:24
0
Merci
J'ai déjà essayé dans ce sens mais sans aboutir à un résultat concluant.
De plus, lorsque je met la valeur TopMost à True, la fenêtre prend le focus et cela perturbe la saisie de l'utilisateur.
Je ne pense pas que modifier cette propriété dynamiquement soit la solution.
Il doit sûrement y avoir une meilleure méthode.
Commenter la réponse de addamsmercredi
NHenry 14182 Messages postés vendredi 14 mars 2003Date d'inscription 25 mai 2018 Dernière intervention - 6 juin 2006 à 13:30
0
Merci
Bonjour

Sincerement, je ne vois pas mieux.
Je ne vois que tu enregistre (dans une variable globale par exemple) la form qui vient d'être activée, et lorsque ta fenêtre à affichée en topmost prend le focus elle active la fenêtre précédente (il faut controler si le topmmost n'est pas à true déjà pour éviter des erreurs).

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
Commenter la réponse de NHenry
addamsmercredi 121 Messages postés dimanche 3 octobre 2004Date d'inscription 27 juillet 2006 Dernière intervention - 6 juin 2006 à 17:16
0
Merci
En fait, tu m'avais donné la solution dès le début mais je n'avais pas compris.
Il suffit de faire .Show (Me)
C'est tout simple mais je n'y aurais jamais pensé sans toi car je faisais toujours .Show ()
Merci beaucoup.
Commenter la réponse de addamsmercredi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.