Faites un clic droit pour sélectionner une ligne dans dataGridView
J'ai besoin de sélectionner une ligne dans dataGridView avec un clic droit, avant de ContextMenu parce que contextMenu de ligne est dependendt.
J'ai essayé ceci:
if (e.Button == MouseButtons.Right)
{
var hti = dataGrid.HitTest(e.X, e.Y);
dataGrid.ClearSelection();
dataGrid.Rows[hti.RowIndex].Selected = true;
}
ou:
private void dataGrid_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
dataGrid.Rows[e.RowIndex].Selected = true;
dataGrid.Focus();
}
}
Cela fonctionne, mais lorsque je tente de lire dataGrid.Les Rangées[CurrentRow.Index] je ne vois que la ligne sélectionnée par un clic gauche et pas ceux sélectionnés avec un clic droit..
OriginalL'auteur user2396911 | 2013-05-27
Vous devez vous connecter pour publier un commentaire.
Essayer de régler le courant de la cellule comme ceci (cela va régler le
CurrentRow
propriété de laDataGridView
avant le menu contextuel de l'élément sélectionné):Vous êtes les bienvenus!
OriginalL'auteur Gjeltema
Je me rends compte de ce fil est vieux, je voulais juste ajouter une chose: Si vous voulez être en mesure de sélectionner et d'exécuter l'action, sur plusieurs lignes: vous pouvez vérifier pour voir si la ligne vous êtes un clic-droit est déjà sélectionné. De cette façon, le DataGridview se comporte aime un ListView à cet égard. Donc un clic droit sur une ligne n'est pas déjà sélectionnée: sélectionne cette ligne et ouvrir le menu contextuel. Un clic droit sur une ligne déjà sélectionné, vous donne le menu de contexte et de garder les lignes sélectionnées comme prévu.
OriginalL'auteur David Wakeman
OriginalL'auteur Mehmet Lütfi DÜLKAR
C'est la Méthode Précise, je Suppose
OriginalL'auteur H2Five