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 :

Modification cellule datagrid view avec BindingList come source


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Débutant
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Débutant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 87
    Points
    87
    Par défaut Modification cellule datagrid view avec BindingList come source
    Bonjour à tous,

    Avant tout j'espère que je ne me trompe pas de forum.

    Bon, Je rencontre un problème que je ne parviens pas à résoudre malgré tous mes tests et j'espérais que vous pourriez m'aider à le résoudre.

    voici donc le contexte.

    j'ai :

    une classe reprenant la longueur, largeur et hauteur comme propriété de type float. (Class element)
    dans un control utilisateur j'ai un datagrid view dont la source est une bindinglist<Element> que je mets en datasource de mon datagridview.

    Le problème survient en fait lorsque je modifie une cellule du datagridview. En effet, je souhaite pouvoir encodé les nombre avec virgule en utilisant le point du clavier numérique. Malheureusement, le point n'est pas pris en compte lorsque la cellule est validée par enter ou en changeant de cellule. Par contre si la , est utilisé c'est bon.

    Voici donc les cas fonctionnant ou non.

    entrée 2 -> ok
    entrée 2,5 -> ok
    entrée 2.5 -> KO affiche 25 et ne prend pas le point
    letrre -> ok message d'erreur demandant uniquement des chiffres

    Comment puis-je donc pour traiter la valeur entrée au clavier avec le point avant que celle-)ci soit envoyé dans l'element du BindingList?

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Bah ,FormatProvider est ton ami....
    exemple :
    1/code behind.cs du class Element:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    namespace WinPointVirgule
    {
        public class Element
        {
            public float Largeur { get; set; }
            public float Longueur { get; set; }
            public float Hauteur { get; set; }
        }
        public class ListElement:BindingList<Element>
        {
            public ListElement()
            {
                Element elem = new Element() { Largeur = 15.20f, Longueur = 32.6f, Hauteur = 13.45f };
                this.Add(elem);
            }
        }
    }
    1/code behind.cs du form user:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    namespace WinPointVirgule
    {
        public partial class Form1 : Form
        {
            private CultureInfo ci = new CultureInfo("en-US");
            public Form1()
            {
                InitializeComponent();
                this.Load += new EventHandler(Form1_Load);
            }
     
            void Form1_Load(object sender, EventArgs e)
            {
                ListElement liste = new ListElement();
                dataGridView1.DefaultCellStyle.Font = new Font("times new roman", 16.0f);//en gros pour voir le point dans la colonne LARGEUR
                dataGridView1.DataSource = liste;
                dataGridView1.Columns["Largeur"].DefaultCellStyle.FormatProvider = ci;
                dataGridView1.AllowUserToAddRows = true;
            }
        }
    }
    bon code...

Discussions similaires

  1. [Débutant] Afficher requete avec jointure dans un datagrid view
    Par Alist3r dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/06/2017, 13h12
  2. [Débutant] comment remplir un datagrid view avec un listviewitem
    Par aymenmyno dans le forum C#
    Réponses: 3
    Dernier message: 20/11/2012, 09h49
  3. Modification cellule d'une JTable avec un JButton externe
    Par pharsales dans le forum Langage
    Réponses: 0
    Dernier message: 22/03/2012, 10h41
  4. Accées Aux cellules dans un DataGrid View
    Par prof ali dans le forum ADO.NET
    Réponses: 4
    Dernier message: 30/01/2011, 03h22
  5. Réponses: 2
    Dernier message: 17/07/2007, 14h52

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