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 :

[VB.NET]Formater des données à l'affichage dans un DataGridView


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut [VB.NET]Formater des données à l'affichage dans un DataGridView
    Hello

    Je ne parviens pas à appliquer un format tout bête (qui ne modifie pas les données enregistrées mais seulement leur affichage) : à savoir modifier la casse de données de type String.

    Par exemple, afficher toutes les données d'une colonnes en majuscule.

    Je pense avoir compris le principe pour formater des dates ou des nombres, l'aide est assez bien faite.

    Mais je sèche pour un traitement concernant simplement des chaînes de caractère...

    J'ai regardé du côté de la propriété DataGridViewCellStyle.Format et de l'événement DataGridView.CellFormatting, mais sans succès...

    Quelqu'un est-il déjà passé par là ?

  2. #2
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    J'ai trouvé la réponse. Il faut bien utiliser l'événement DataGridView.CellFormatting.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MyDataGridView_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles MyDataGridView.CellFormatting
      If e.ColumnIndex = ColName.Catégorie And e.RowIndex <> DirectCast(sender, DataGridView).NewRowIndex Then e.Value = e.Value.ToString.ToUpper()
    End Sub
    Vous voyez qu'il faut valoriser la propriété Value de l'objet e renvoyé par l'événement.
    Cependant ne vous faites pas avoir comme moi au début : votre code plantera si vous essayez de formater une valeur null.

    Donc faites un test avant de valoriser e.Value.

    Dans mon cas, je vérifie l'index de la colonne de la cellule et je valorise (je formate donc), si la cellule n'appartient pas à la ligne du nouvel enregistrement.

    En résumé c'est donc très simple de faire du formatage !

    J'attire votre attention d'ailleurs sur la propriété DataGridViewCellStyle.Format qui vous permettra d'appliquer toute sorte de formats pour les dates ou les nombres, en entrant simplement une expresion string et donc sans code à proprement parler (puisque vous pouvez définir la propriété en mode création).

  3. #3
    Membre actif Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Points : 219
    Points
    219
    Par défaut
    Merci à toi, ce truc m'a été très utile.

    J'ajoute des DateTime dans un DataGridView, et je souhaitais afficher ces dates selon un format précis, tout en permettant à l'usager de trier les dates par les DateTime et non pas à partir du String affiché à l'écran.

    Il m'a simplement fallu spécifier un format pour ma colonne Date du DataGridView:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DataGridViewCellStyle dataGridViewCellStyleDate = new DataGridViewCellStyle();
    dataGridViewCellStyleDate.Format = "ddd d MMM yyyy";
    dataGridViewCellStyleDate.NullValue = null;
    this.Columns[0].DefaultCellStyle = dataGridViewCellStyleDate;
    Ensuite j'ajoute mon data:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DateTime newDate = new DateTime(date.Year, date.Month, date.Day, i, 0, 0);
     
    this.Rows.Add(newDate, strVal0, nVal1, nVal2);
    Merci pour les infos^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Format des données Excel exportée dans Word
    Par eric4459 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/08/2014, 17h39
  2. Réponses: 6
    Dernier message: 06/07/2009, 18h09
  3. Réponses: 8
    Dernier message: 04/06/2009, 15h53
  4. Réponses: 2
    Dernier message: 03/02/2009, 22h12
  5. [CSV] Format des données exportées dans Excel
    Par magsmile dans le forum Langage
    Réponses: 6
    Dernier message: 07/09/2007, 17h46

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