IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

DataGridView et format des valeurs dans les cellules


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut DataGridView et format des valeurs dans les cellules
    Bonjour à tous,

    J'ai une datagridview et je voudrais que pour certaines cellules de cette datagridview, les données affichées soient un format déterminé.

    Quelque chose de ce style après avoir parcouru les :
    dataGridView1.Rows[index de la ligne.Cells["Nom de la colonne"].ValueType = typeof(decimal);

    et que les données affichées dans cette cellule soient en fonction des cas de type décimal avec n chiffres après la virgule, ou en encore de type date, ou encore de type scientifiques, etc......

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Tu peux déjà spécifier un format d'affichage sur les colonnes de ta grille.
    Par exemple avec "N2", 1.23456 => "1,23".

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci bien pour la réponse

    J'ai déjà essayé cela :
    dataGridView1.Rows[index de la ligne].Cells["Nom de la colonne"].Style.Format = "N2";

    et aussi de mettre un "N2" dans Format du dans le CellStyle Builder mais sans résultat, j'ai toujours la valeur 1.23456

  4. #4
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Nan, pas sur les cellules, sur les colonnes.

    taGrille.Columns["Nom de la colonne"].DefaultCellStyle. .... = ...

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    le problème, c'est que dans la même colonne, je peux avoir à chaque ligne des types de données différentes....
    J'ai une colonne cachée "Type Affichage" que je lis à chaque ligne et en fonction de la valeur de la cellule ("car" pour caractère, ".99" pour décimal avec 2 chiffres après la vigules ou encore ".9999E" pour le format scientifique), je mets à jour la cellule d'une autre colonne nommée "Valeur". Voici mon bout de code :

    for (int indexR = 0; indexR < dt.Rows.Count; indexR++)
    {
    string text = Convert.ToString(dataGridView1.Rows[indexR].Cells["TypeAffichage"].Value);
    switch (text)
    {
    case "car":
    dataGridView1.Rows[indexR].Cells["Valeur"].ValueType = typeof(string);
    break;
    case ".99":
    dataGridView1.Rows[indexR].Cells["Valeur"].ValueType = typeof(decimal);
    break;
    case ".9999E":
    dataGridView1.Rows[indexR].Cells["Valeur"].ValueType = typeof(decimal);
    break;
    case "date":
    dataGridView1.Rows[indexR].Cells["Valeur"].ValueType = typeof(DateTime);
    break;
    default:
    break;
    }
    }


    c'est la ligne dans les cases qui n'est pas bonne!

  6. #6
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Ok. Tu dois pouvoir te dépatouiller sans cette colonne cachée. Si ta grille est bindée à une DataSource, ta colonne "multi-type" est bien bindée à une propriété de ta source. Et dans l'événement CellFormatting, qui se déclenche juste au moment où une cellule transforme la valeur sous-jacente en valeur d'affichage, tu peux faire un switch case sur le type de l'objet, et appliquer des formattages différents selon ce type.

Discussions similaires

  1. DataTable Format des valeurs dans les cellules
    Par Neodream dans le forum C#
    Réponses: 3
    Dernier message: 04/03/2010, 11h01
  2. Excel - Mettre des valeurs dans les cellules
    Par shuya dans le forum Débuter
    Réponses: 1
    Dernier message: 10/02/2009, 09h45
  3. Inserer des valeurs dans une cellule
    Par azerty53 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/09/2006, 16h27
  4. Réponses: 2
    Dernier message: 21/06/2006, 17h57
  5. JTable avec des JPanel dans les cellule
    Par pigpen dans le forum Composants
    Réponses: 11
    Dernier message: 13/04/2006, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo