addamsmercredi
Messages postés121Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention27 juillet 2006
-
6 juin 2006 à 12:29
addamsmercredi
Messages postés121Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention27 juillet 2006
-
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.
addamsmercredi
Messages postés121Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention27 juillet 2006 6 juin 2006 à 12:58
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.
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 6 juin 2006 à 13:05
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)
addamsmercredi
Messages postés121Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention27 juillet 2006 6 juin 2006 à 13:24
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 6 juin 2006 à 13:30
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)
addamsmercredi
Messages postés121Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention27 juillet 2006 6 juin 2006 à 17:16
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.