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 61
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
Rejoignez-nous