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

C# Discussion :

Empêcher l'exécution de base.OnMouseClick(e);


Sujet :

C#

  1. #1
    Membre régulier

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 120
    Points : 120
    Points
    120
    Billets dans le blog
    1
    Par défaut Empêcher l'exécution de base.OnMouseClick(e);
    Bonjour,

    Je souhaite contrôler l'apparition d'un contextMenuStrip sur un panel personnalisé (qui hérite de la classe Panel)
    - si la souris est proche des extrémités de traits, un clic droit ouvre le menu contextuel ;
    - si la souris est loin, un clic droit n'ouvre pas le menu.

    Pour cela :
    - il y a un contextMenuStrip1 dans la Form ;
    - la propriété contextMenuStrip du panel a pour valeur contextMenuStrip1.

    J'ai écrit le code suivant dans mon panel personnalisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            protected override void OnMouseClick(MouseEventArgs e)
            {
                if (onePointIsClose)
                {
                    base.OnMouseClick(e); //ContextMenuStrip1 will be shown
                }
            }
    Malheureusement, que onePointIsClose soit true ou false, le menu apparaît

    Que faire ?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    Bonjour

    que faire ?

    ne pas associer de menu contextuel et gérer dans le OnMouseClick l'apparation de ce menu...

    Sur le mouse click...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    contextMenuHeader.Show(Cursor.Position);

    par exemple

  3. #3
    Membre régulier

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 120
    Points : 120
    Points
    120
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Merci pour cette réponse.

    Certes, mais il faut que je créer le contextMenuStrip dans ma classe CriticlityPanel personnalisée et non pas dans la Form.

    J'essaie et je poste le résultat ...

  4. #4
    Membre régulier

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 120
    Points : 120
    Points
    120
    Billets dans le blog
    1
    Par défaut OK, ça fonctionne.
    Super, merci, tout fonctionne.

    Ce n'est pas très simple car j'avais créé le contextMenuStrip1 grâce à la Tool Box de VS. Le code avait été généré automatiquement dans ma Form.Designer.cs.

    Il m'a donc fallu copier tout le code généré automatiquement dans la Form.Designer.cs et le coller dans le CriticalityPanel.Designer.cs

    Au bilan, ça fonctionne.

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    parfait.

    Celà dit, tu n'étais pas obligé d'avoir à copier le code. Tu aurais pu ajouter une propriété à ta classe Panel pour passer le menu contextuel
    comme on passe un argument...

    Anyway, si ça marche, c'est l'essentiel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. F5 et empêcher l'exécution du script déjà effectué
    Par Tchupacabra dans le forum Langage
    Réponses: 7
    Dernier message: 13/09/2011, 14h28
  2. afficher un message sans empêcher l'exécution
    Par n_moalla dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/11/2006, 21h11
  3. Réponses: 4
    Dernier message: 10/11/2005, 12h48
  4. Exécuter une Base Access
    Par Mout85 dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 12h43
  5. Comment empêcher l'accès à la base de registre ?
    Par AT dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 29/03/2005, 09h44

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