Récupérer le numéro de ligne d'un DatagridView [Résolu]

Signaler
Messages postés
61
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
29 juin 2008
-
Messages postés
1
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
7 août 2008
-
Bonjour,

Je souhaiterai récupérer le numéro de la ligne de mon DataGridView quand je la sélectionne ou lorsque je clique dans une de ses céllule.

PS: J'utilise tellement ce forum que j'ai bien envie de devenir membre club...

6 réponses

Messages postés
61
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
29 juin 2008

Ca c'est la bonne solution:

int ligneDuClic;

//recupérer les coordonnées de la souris
Point p =
new
Point(e.X, e.Y);

//déterminer la partie clickée du datagrid
DataGrid.
HitTestInfo HTI = gridViewIncidents.HitTest(p);

//On récupère le numéro de ligne où il y a eu un clic.
ligneDuClic = HTI.Row;

MessageBox.Show(ligneDuClic);
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
94
Hello,
Essaie DataGridView.CurrentRow peut-être

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
61
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
29 juin 2008

Voila la solution:

<code class="csharp_keyword2">

using
System
;
using
System
.
Drawing
;
using
System
.
Windows
.
Forms
;
//
...
private
void
DG_MouseUp
(
object
sender
,
MouseEventArgs e)
{
//
recupérer
les
coordonnées
de
la
souris

Point p
=
new
Point
(e
.
X
,
e
.
Y)
;
//
déterminer
la
partie
clickée
du
datagrid

DataGrid
.
HitTestInfo HTI
=
DG
.
HitTest
(p)
;
//
si
c'est
un
type
'cellule'
if
(HTI
.
Type
=
=
DataGrid
.
HitTestType
.
Cell)
{
//
définir
la
cellule
en
cours

DG
.
CurrentCell
=
new
DataGridCell
(HTI
.
Row
,
HTI
.
Column)
;
//
selectionner
la
ligne
correspondante

DG
.
Select
(HTI
.
Row)
;
}
}
</code>
Messages postés
61
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
29 juin 2008

Merci pour ta solution buno car ça m'a mis sur la piste.
Messages postés
61
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
29 juin 2008

Il semblerait qu'il y ait eu un bug donc je reposte la solution:
using System
;

using
System
.
Drawing
;

using
System
.
Windows
.
Forms
;

//
...

private
void
DG_MouseUp
(
object
sender
,
MouseEventArgs e)
{

  
//
recupérer
les
coordonnées
de
la
souris

   Point p
=
new
Point
(e
.
X
,
e
.
Y)
;

  
//
déterminer
la
partie
clickée
du
datagrid

   DataGrid
.
HitTestInfo HTI
=
DG
.
HitTest
(p)
;

  
//
si
c'est
un
type
'cellule'

  
if
(HTI
.
Type
=
=
DataGrid
.
HitTestType
.
Cell)
    
{

        
//
définir
la
cellule
en
cours

         DG
.
CurrentCell
=
new
DataGridCell
(HTI
.
Row
,
HTI
.
Column)
;

        
//
selectionner
la
ligne
correspondante

         DG
.
Select
(HTI
.
Row)
;

    
}

}
Messages postés
1
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
7 août 2008

sans la souris

int NumLigne = DGresultats.CurrentRow.Index ;