Sélectionnez la ligne dans DataGridView dans mouse_click événement

J'ai un DataGridView sur un formulaire. Quand je clic droit de la souris sur une ligne, j'ai besoin de ce programme pour ouvrir un menu contextuel. Avec ce menu contextuel, je veux être en mesure de modifier les données dans la DataGridView.

J'ai eu le menu contextuel pour afficher lorsque je clic droit, mais je ne sais pas où aller à partir d'ici. Comme je vais le supprimer (par exemple) une ligne entière, j'ai besoin pour obtenir l'indice de ladite ligne et aussi le mettre à sélectionnés. J'ai essayé cela avec la cell_clicked événement, mais je ne peut pas déterminer si la gauche ou le bouton droit de la souris a été pressé. Mais avec le mouse_click cas je ne peux pas obtenir l'index de ligne.

Voici mon code:

public Form()
{
   ContextMenu contextMenu = new ContextMenu();

   //Fill Context Menu
   MenuItem delete = new MenuItem("Delete");
   contextMenu.MenuItems.Add(delete);
}

private void grdSchedules_MouseClick(object sender, MouseEventArgs e)
{
   if (e.Button == System.Windows.Forms.MouseButtons.Right)
   {
      contextMenu.Show(grdSchedules, new Point(e.Y, e.Y));      
      //Get rowindex here and select row          
   }
}

J'ai essayé de cette façon:

 private void grdSchedules_CellClick(object sender, DataGridViewCellEventArgs e)
    {
       if (e.Button == System.Windows.Forms.MouseButtons.Right) //e.Button does not work here
       {
           contextMenu.Show(grdSchedules, new Point(e.Y, e.Y));                
       }
    }        
Vous pouvez utiliser MousePosition en place de e.X et e.Y dans votre CellClick. Vous pourriez avoir à traduire les coordonnées de l'espace de la grille, mais c'est trivial.
Ceci devrait t'aider: stackoverflow.com/questions/1718389/...
Je l'ai eu à travailler. Édité le post ci-dessus pour inclure de réponse...
vous pouvez répondre à votre propre question en bas de la page. là, les gens peuvent voter et il est plus facile de trouver

OriginalL'auteur LeonidasFett | 2013-06-19