DataGrid en mode Listview

Résolu
cs_zobio
Messages postés
18
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
25 janvier 2005
- 15 déc. 2004 à 19:15
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
- 17 déc. 2004 à 14:38
Salut, ma question du jour :

Je voudrais utiliser un datagrid en mode list simple, c'est a dire que je veux que lors du clic sur une ligne elle soit sélectionnée entière (ca c'est bon) et que la cellule ne passe pas en mode edit.

J'ai mis la propriété readlonly a true mais malgré ca la cellule sélectionnée passe en edit (c'est quand meme pas logique) y a t'il autre chose à faire ?

Merci d'avance.

6 réponses

Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
16 déc. 2004 à 09:17
ben c pas prevu par crosoft en standard faut tout coder...
le mieux etant de creer un objezt herite d'un datagrid standard avec c méthodes....

et le laisse en readonly

//sur le mouseup
private void dg_Liste_MouseUp(object sender, MouseEventArgs e)
{
//Lors d'un clique sélectionne la ligne entière
Point pt = new Point(e.X, e.Y); 
DataGrid.HitTestInfo hti = this.HitTest(pt); 

if(hti.Type == DataGrid.HitTestType.Cell) 
{ 
this.CurrentCell = new DataGridCell(hti.Row, hti.Column); 
this.Select(hti.Row); 
} 
}

//sur le scroll
private void dg_Liste_Scroll(object sender, EventArgs e)
{
try
{
this.Select(this.CurrentRowIndex);
}
catch (Exception ex)
{

}
}

//et faire un override sur la methode ProcessCmdKey
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
int		ligne_crt;

try
{
switch (keyData)
{

case Keys.Enter :
{
this.Select(this.CurrentRowIndex);
if (this.KeyPressEnter!=null)
{
this.KeyPressEnter(new object());
}
return true;

}

case Keys.Up :
{
//.......
}
}

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
3
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
16 déc. 2004 à 08:15
Le curseur change (pour éditer) mais l'édition n'est tout de même pas faisable si tu as mis la property read-only à true.

Ceci dit, pour que la cellule ne soit pas du tout éditable (que le curseur ne change pas) je crois que y'a pas de solutions.

Dans le cas où je me tromperais, je suis aussi preneur pour la solution...
0
cs_zobio
Messages postés
18
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
25 janvier 2005

16 déc. 2004 à 09:06
En fait j'ai cru qu'en modifiant le tablestyle je trouverais mais en fait ca n'a pas l'ai de fonctionner.

Je pense quand même qu'il y a une solution, ca me parait dingue que crosoft n'est pas penser à ce genre de détail.
Soit il s agit d'un bug soit ils sont complètement idiot car je ne vois pas l'interet de passer une cellule en edit si elle est readonly... non?

bref, je cherche et si je trouve je post !!!

A bientot et merci pour ta réponse.
0
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
17 déc. 2004 à 12:13
vous avez d'autres solutions ???

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0

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

Posez votre question
cs_zobio
Messages postés
18
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
25 janvier 2005

17 déc. 2004 à 14:32
Salut,

T'as solution semble bien, j'avais d'ailleurs commencer a faire une classe de base intégrant des modifs utiles du datagrid, mais je trouvais vraiment louche que crosoft n'est rien prévu pour éviter ce genre de bidouille.
Pour le moment j'ai un peu cesser de chercher de ce côté la car j'ai encore beaucoup de subtilité a apprendre sur C#.

Par contre dés que je reviens sur le sujet, si je trouve une autre solution je viendrais poster ici...

Quoi qu'il en soit merci pour ta solution.
0
Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
17 déc. 2004 à 14:38
de rien...

c vrai que c un peu lourd de devoir tout gérer...
mais bon c le charme de C#

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0