Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1427 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

   contextMenuStrip position ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

contextMenuStrip position ???

n°1671119
JulienOrio​n666
Posté le 14-01-2008 à 20:19:32  profilanswer
 

Bonjour,
 
J'amerai faire apparaitre un menu contextuel sous le pointeur avec un clique gauche.

Code :
  1. if (e.Button == MouseButtons.Right)
  2.      contextMenuStrip1.Show(this, new Point(e.X,e.Y));


avec ce code ce la ne marche pas car apparament les coordonée 'e.x' et 'e.y' sont par rapport à l'objet ou l'on clique.
Est on obligé de rajouter les coordonnée de tout les conteneurs, j'ai un datagridView, un groupbox, des onglets plus le menu de la fenetre mère , cela fait bcp de chose n'y a t'il pas un moyen plus simple  :heink:

mood
Publicité
Posté le 14-01-2008 à 20:19:32  profilanswer
 

n°1671306
ixemul
Nan mais sans blague ! ⚡
Posté le 15-01-2008 à 10:12:48  profilanswer
 

clic gauche & 'MouseButtons.Right' [:cerveau autobot]
 
Sinon, concernant ton pb de coordonnées, il existe des méthode PointToScreen et PointToclient pour les contrôles qui permettent de retourner les coordonnées relative à l'écran ou à la fenêtre de ton application.
 
http://msdn2.microsoft.com/en-us/l [...] creen.aspx


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1671344
MagicBuzz
Posté le 15-01-2008 à 10:42:55  profilanswer
 

Just my 2 cents...
 

Code :
  1. this.ContextMenuStrip = this.contextMenuStrip1;


 
Ca résoudrait pas ton problème par hasard ?
 
A mettre juste sur le conteneur du plus haut niveau (habituellement ton objet Form) qui doit gérer le menu contextuel.
Il sera hérité à tous les enfants du conteneur, sauf si ceux-ci font un appel explicite à un menu contextuel spécifique.
 
Ca me semble un peu plus simple que de devoir gérer à la main les évènements non ?


Message édité par MagicBuzz le 15-01-2008 à 10:44:45
n°1671443
moi23372
Posté le 15-01-2008 à 13:28:48  profilanswer
 

utilise cela:
this.contextMenuStrip1.Show(System.Windows.Forms.Control.MousePosition);

n°1671506
MagicBuzz
Posté le 15-01-2008 à 14:50:56  profilanswer
 

et pourquoi pas ma méthode plutôt ?
 
qui est juste la méthode standard, et ne nécessite même pas l'écriture de la moindre ligne de code, puisqu'elle peut se faire via la GUI


Message édité par MagicBuzz le 15-01-2008 à 14:51:56
n°1671760
JulienOrio​n666
Posté le 15-01-2008 à 20:20:46  profilanswer
 

j'ai trouve plus simple sur un forum  

Code :
  1. Cursor.Position

:D  
 
merci qd meme tlm  :jap:

n°1671782
MagicBuzz
Posté le 15-01-2008 à 21:18:24  profilanswer
 

bon, et maintenant que vous avez énuméré toutes les solutions pourries de la terre, est-ce que quelqu'un peu me dire pourquoi la solution que j'ai donné ne serait pas la bonne ?
 
franchement c'est quoi cette idée de vouloir réécrire ce qui existe déjà en natif ?


Message édité par MagicBuzz le 15-01-2008 à 21:18:52
n°1672106
moi23372
Posté le 16-01-2008 à 12:40:01  profilanswer
 

tu n'as aucun controle spécifique possible en passant par la méthode standards c'est tout :)
 
moi personnellement, dans une de mes applics, je voulais qu'elle ne s'affiche que si je faisais un click droit sur une ligne de ma grille.  
 
mais sinon si c'est pas faire un truc standards, ta méthode est de loin la meilleure.

n°1672123
MagicBuzz
Posté le 16-01-2008 à 12:50:17  profilanswer
 

d'accord, en effet, pour du spécifique, on a besoin de modifier le fonctionne.
 
ceci dit, je reviens après un petit test :)

n°1672133
MagicBuzz
Posté le 16-01-2008 à 12:55:42  profilanswer
 

ok, très con c#, les mouseevents ne sont pas annulables...
du coup pas moyen de bloquer l'apparition du contextmenu via un test au moment du click...


Message édité par MagicBuzz le 16-01-2008 à 12:55:59
mood
Publicité
Posté le 16-01-2008 à 12:55:42  profilanswer
 

n°1672369
moi23372
Posté le 16-01-2008 à 16:40:35  profilanswer
 

il te reste cependant la possibilité de ne propager l'event plus bas :) on interceptant le click

n°1672375
MagicBuzz
Posté le 16-01-2008 à 16:47:34  profilanswer
 

moi23372 a écrit :

il te reste cependant la possibilité de ne propager l'event plus bas :) on interceptant le click


Ben oui, mais justement, je peux l'intercepter, mais je vois pas comment je peux le bloquer ensuite (:??:)
 
En tout cas, si c'est faisable, je trouve ça mieux d'utiliser la méthode "de base", et au cas par cas, parceque je dois pas montrer une ligne sur deux par exemple, bloquer son appel, mais là je vois pas comment faire (faut dire que j'ai pas trop chercher non plus ;))

n°1672476
moi23372
Posté le 16-01-2008 à 19:41:32  profilanswer
 

suffit de dériver du controle.  
d'overrider la méthode "WndProc" dans laquelle passe tous les Events.  
 
Dans celle ci, mettre une condition pour tester l'event qui arrive.
Si c'est le click, faire le traitement souhaité.  
Pour annuler le click, ne pas faire un "base.WndProc(...)".
 
dans les autres cas, appeler "base.WndProc(...)".
 
Et le tour est joué.

n°1672496
MagicBuzz
Posté le 16-01-2008 à 20:29:44  profilanswer
 

effectivement :jap:
 
c'est un peu lourd, mais ça marche avec cette technique

n°1672696
moi23372
Posté le 17-01-2008 à 12:56:33  profilanswer
 

c'est de cette façon qu'on peut rajouter des event sur les controles:
 
TabControl --> SelectedIndexChanging
Grille --> BeforeRowDeactivate
etc..


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

   contextMenuStrip position ???

 

Sujets relatifs
[C] Recupération de la position du curseur.position curseur textarea iframe caractère
Centrer une fenetre dans une fenetre suivant la position scrollée[Résolu]Javascript, div, visibility et position
SQL Loader: pb positionRecherches valeur dans tableau => indication position (macro)
[JS] Trouver la position du curseur sur une imagerécupérer la position d'un clip son connaitre son nom
[RESOLU] Probleme pour augmenter un DIV en fonction d'un autreComment connaitre la position d'un champ dans un formulaire ?
Plus de sujets relatifs à : contextMenuStrip position ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR