Olivier Eckmann Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 Bonjour, ça n'a rien à voir avec AutoCAD, c'est un pb C# pur, mais il y a des personnes très compétentes sur ce forum et je me permets de poster ici. J'essaie de gérer l'affichage d'un menu contextuel sur le clic droit dans une cellule (colonne) d'une DatagridView. Je réagis sur l'évènement CellMouseUp qui m'envoie en argument un "DataGridViewCellMouseEventArgs" sur lequel je récupère mon ColumnIndex et RowIndex pour savoir quelle cellule se trouvait sous la souris. Cet argument me renvoie aussi les coordonnées X, Y à partir du point haut gauche de ma Cellule => OKLorsque je veux faire afficher mon menu contextuel j'utilise _ctmForDesign.Show(dgvRoom, new Point(e.X, e.Y));Le 1er argument c'est le contrôle correspondant à ma Datagrid et ensuite c'est le point d'insertion, le problème c'est que ça me l'affiche en relatif par rapport au coin HautGauche de ma grille et pas par rapport au point HautGauche de ma cellule.Comme je n'arrive pas à passer ma cellule comme contrôle en 1er argument (en tant que Contrôle), est-ce que je suis obliger de recalculer le X,Y absolu de ma cellule (balayage des hauteurs derangées et de colonnes) par rapport à la grille? ou bien y a-t-il une autre solution. J'espère avoir été assez clair. Merci. Olivier
Maxence DELANNOY Posté(e) le 24 juin 2015 Posté(e) le 24 juin 2015 Normalement il suffit d'assigner ton menu contextuel à la propriété ContextMenuStrip de ton dataGridView : this.dataGridView1.ContextMenuStrip = this.contextMenuStrip1; Le contrôle DataGridView se charge ensuite de positionner correctement le menu. Sinon pour convertir du système de coordonnées de la cellule au système de coordonnées de la grille, tu peux utiliser GetCellDisplayRectangle : var dgv = (DataGridView) sender; Rectangle rect = dgv.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false); contextMenuStrip1.Show(dgv, new Point(rect.Left + e.X, rect.Top + e.Y)); Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
Olivier Eckmann Posté(e) le 24 juin 2015 Auteur Posté(e) le 24 juin 2015 Maxence, Je suis rester avec le ContextMenu, et avec ton aide le calcul de la position est nickel. Merci, c'est super. Olivier
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant