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));
}
}
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
Vous devez vous connecter pour publier un commentaire.
J'ai créé un plus simple et plus rapide méthode générique qui fonctionne avec tous les composants datagrid. Cette méthode permet de sélectionner les lignes avec un clic droit. Ajouter cette méthode pour votre DataGridViews' "MouseDown" de l'événement:
OriginalL'auteur W0lfw00ds
J'ai trouvé une solution. Voici comment j'ai fait:
OriginalL'auteur LeonidasFett
Vous pourriez ai utilisé
grdSchedules_MouseDown
ougrdSchedules_MouseUp
des événements au lieu degrdSchedules_MouseClick
ougrdSchedules_CellClick
.OriginalL'auteur Tanatos Daniel