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