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

Résolu
HansPrestat Messages postés 61 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 29 juin 2008 - 27 juin 2008 à 11:13
jadove Messages postés 1 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 7 août 2008 - 7 août 2008 à 12:53
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

HansPrestat Messages postés 61 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 29 juin 2008
29 juin 2008 à 23:23
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);
3
BunoCS Messages postés 15331 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 7 décembre 2022 103
27 juin 2008 à 17:24
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
0
HansPrestat Messages postés 61 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 29 juin 2008
27 juin 2008 à 19:20
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>
0
HansPrestat Messages postés 61 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 29 juin 2008
27 juin 2008 à 19:21
Merci pour ta solution buno car ça m'a mis sur la piste.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HansPrestat Messages postés 61 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 29 juin 2008
27 juin 2008 à 19:22
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)
;

    
}

}
0
jadove Messages postés 1 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 7 août 2008
7 août 2008 à 12:53
sans la souris

int NumLigne = DGresultats.CurrentRow.Index ;
0