C# - DatagridView et ContextMenu
J'ai un datagridview où je montre les informations sur les produits. Je veux lier un contextmenu lorsque l'utilisateur sélectionne une cellule, puis à droite clique sur la cellule. J'ai une autre contextmenu et que l'un est lié aux colonnes de la datagridview. Si un droit de l'utilisateur clique sur une colonne de la contextmenu montre.
J'ai essayé comme ça, mais il ne fonctionne pas. Le menu contextuel s'affiche lorsque le droit de l'utilisateur clique sur une cellule, mais le contextmenu qui est lié à l'en-tête de colonne ne fonctionne pas.
private void GridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
productContextMenu.Show(GridView1, e.Location);
}
}
Comment puis-je faire en sorte que lorsque le droit de l'utilisateur clique sur un datagridview montre?
Merci beaucoup à l'avance.
MODIFIER
Thnx pour les réponses. J'ai résolu le problème comme ceci:
private void GridView1_MouseUp(object sender, MouseEventArgs e)
{
DataGridView.HitTestInfo hitTestInfo;
if (e.Button == MouseButtons.Right)
{
hitTestInfo = GridView1.HitTest(e.X, e.Y);
if (hitTestInfo.Type == DataGridViewHitTestType.Cell)
{
productContextMenu.Show(GridView1, e.Location);
}
}
}
À la fois la contextmenus montre. Quand je clique sur la colonne de menu contextuel affiche, et quand je clique sur une cellule qui contextmenu montre.
Pourquoi ne pas vous marquer comme réponse alors si vous avez la solution avec son idée
Viens de le faire. Thnx de nouveau!
OriginalL'auteur Erika | 2011-05-04
Vous devez vous connecter pour publier un commentaire.
Essayer cette
ou
Pour une raison quelconque, je suis toujours prise en colonne 0 pour hitTest.ColumnIndex. Voici mon code pour ajouter de l'auditeur: dataGridView.ColumnHeaderMouseClick += dataGridView_ColumnHeaderMouseClick; et voici mon écouteur définition: private void dataGridView_ColumnHeaderMouseClick(object sender, MouseEventArgs e)
OriginalL'auteur Dorababu Meka
Pour le problème de la position relative, vous pouvez également utiliser cette approche:
OriginalL'auteur CHARNICHARTLG