IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Click extérieur à une form


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 67
    Par défaut Click extérieur à une form
    Bonjour,

    Je suis actuellement en réalisation d'un logiciel utilisant le principe des lightbox du web, qui affiche une image plus grande, pour cela j'ai donc une nouvelle form ouverte en modal.

    Ce que j'aurais voulu savoir, c'est si il était possible de gérer les clicks extérieur de cette form, par exemple l'utilisateur click à coté de la form, et çà ferme cette form.

    Il faut donc que ce soit la form elle même qui gère l'événement du click extérieur à elle-même .

    A votre avis, est ce que c'est possible? avez vous des pistes pour essayer de le faire, sans pour autant que ce soit un truc énorme, au pire tanpis.

    Merci a vous

  2. #2
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    je viens de regarde dans les propriete d'un form sous VS 2008, et la seule idée qui me viens a l'esprit c'est un clic mouse sur le formulaire a fermer.

    Je m'explique:

    alors, si il est possible de localiser une fenetre sur l'ecran c'est a dire délimiter les bords et donc en deduire la ou n'est pas la fenetre, il faudrais faire gerer l'evenement 'mouse click' et si il est dedans alors ne rien faire, sinon fermer le form en cours. Pour te simplifier la vie, je pense qu'il est préférable que tu centre ta fenetre automatiquement, qu'aucun redimensionnement ne soit possible et qu'on ne puisse pas la bouger de place: exactement comme sur le net.

    ca va donner un truc du genre:
    si le clic.position(je sais pas si ca existe) se situe dans form alors
    ne rien faire
    sinon form.close()

    ceci n'est pas un vrai code

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 67
    Par défaut
    C'est aussi ce qui m'est venu directement à l'esprit, mais tous les événements on l'air d'être seulement géré lorsque la souris est au dessus de la form.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 67
    Par défaut
    Ah le mouseLeave, je vais aller voir de ce coté la, mais j'ai peur que la seule possibilité soit de lancer une méthode qui bloque l'appli tant que la souris est dehors.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 67
    Par défaut
    Sinon moi ce que je pensais ce serait un truc du genre:

    bool dedans = true;

    lorsque la souris sort de la form dedans=false
    lorsque la souris entre dans la form dedans=true


    et du coup une méthode avec un while(!dedans)
    {
    Si(click)
    Close()
    }

    Mais alors çà va bloquer mon appli, ou un thread doit etre possible, mais surtout récupérer un booléen pour savoir si le click gauche est clické ou non.
    Je ne vois pas comment faire.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    A mon avis tu ne peux pas utiliser les evenements de ta form pour surveiller se qui se passe ailleur

    Perso je me pencherai sur le hook des evenements windows. L'idée, surveiller la message queue de windows pour catcher le message WM_MOUSE_DOWN.

    Je crois avoir vu un article la dessus il y a quelques jours, je vais tenter de remettre la main dessus, en plus je vais devoir utiliser ca bientot alors...

    [EDIT]
    Tiens un début de piste, si tu peux nous tenir au courrant si ca se passe bien ca serait sympa :

    Raccordement (hook) windows
    La fonction SetWindowsHookEx

    Bonne Faisa

  7. #7
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Pour le clik, c'est sûrement possible mais....je vois pas
    Et si tu t'abonnais au MouseLeave?

Discussions similaires

  1. Interception de chaque click sur une form
    Par olibara dans le forum Windows Forms
    Réponses: 6
    Dernier message: 11/03/2012, 11h00
  2. Réponses: 15
    Dernier message: 22/02/2009, 14h36
  3. Detection du click dans une form MDI
    Par ghost emperor dans le forum VB.NET
    Réponses: 0
    Dernier message: 18/02/2009, 09h56
  4. évènement sur click pour 50 boutons d'une form
    Par timotep dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/07/2008, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo