Ouvrir une form sans lui donner le focus

scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 - 30 mars 2009 à 12:00
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 - 30 mars 2009 à 16:32
Bonjour,

J'ai une appli qui affiche à interval régulier une pop-up à côté de la barre des taches (un peu comme MSN Messenger).

Cette pop-up est une form qui contient des infos.

Mon souci : lorsque cette form apparait, elle prend le focus ce qui enquiquine les utilisateurs (qui sont par exemple dans Word).

Comment faire pour continuer à afficher cette form mais sans qu'elle prenne le focus ?

(je ne peux pas la remplacer par une notify icon)

Merci.

2 réponses

GillouXman Messages postés 561 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 10 juin 2010
30 mars 2009 à 16:09
je pense que ce post pourrait t'aider

apparement ce n'est pas possible nativement.

Y a la solution dans le poste.

http://stackoverflow.com/questions/156046/show-a-form-without-stealing-focus-in-c
0
scortex84 Messages postés 379 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 20 avril 2011 1
30 mars 2009 à 16:32
Merci pour ta réponse.

Entre temps, j'ai trouvé en suivant la piste de l'API. Le piège est qu'il ne faut pas déclarer la fenêtre en "TopMost = true". De plus le paramètre a utiliser est '8'.

Ce qui donne :

private
const
int SW_SHOWNA = 8;[

DllImport(
"user32", CharSet =
CharSet.Auto)]

private
extern
static
int ShowWindow(
IntPtr hWnd,
intnCmdShow);

ShowWindow(frm.Handle, SW_SHOWNA);

Ce qui a pour effet d'ouvrir la fenêtre en "topmost" mais dans le donner le focus.

Merci encore.
0
Rejoignez-nous