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 :

[C#] Datagrid et modification de valeur


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 8
    Par défaut [Résolu][C#] Datagrid et modification de valeur
    Bonjour,

    dans un programme C#, j'utilise un datagrid bindé à un arraylist pour afficher le contenu d'un fichier.
    En fait, je voudrais pouvoir modifier le contenu du datagrid, mais lorsque je modifie la valeur d'une cellule, la valeur est écrasée par la valeur d'origine lorsque je quitte la cellule sélectionnée.

    Il faut modifier la valeur directement dans l'arrayList ? ou gérer un évènement du datagrid ? J'avoue que je sèche un peu la...


    Merci ^^

  2. #2
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut Re: [C#] Datagrid et modification de valeur
    Citation Envoyé par Kaïn
    Bonjour,

    dans un programme C#, j'utilise un datagrid bindé à un arraylist pour afficher le contenu d'un fichier.
    En fait, je voudrais pouvoir modifier le contenu du datagrid, mais lorsque je modifie la valeur d'une cellule, la valeur est écrasée par la valeur d'origine lorsque je quitte la cellule sélectionnée.

    Il faut modifier la valeur directement dans l'arrayList ? ou gérer un évènement du datagrid ? J'avoue que je sèche un peu la...


    Merci ^^
    tu peux montrer un peu de code svp ?

    merci

    @+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 8
    Par défaut
    vouaye ^^
    Alors, mon arrayList contient des instances de paramètres :

    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
    24
    25
    26
    27
    28
    	//création d'une classe parametre : elle contient le nom de l'argument et son contenu
    	//chaque instance de parametre est stockée dans l'arraylist de contenu de fichier
    	public class param
    	{
    		private string nomParam;
    		private string valParam;
     
    		//constructeur
    		public param(string nom, string val)
    		{
    			this.nomParam = nom;
    			this.valParam = val;
    		}
     
    		//property nomDuParam
    		public string nomDuParam
    		{
    			get {return this.nomParam;}
    		}
     
    		//property valDuParam
    		public string valDuParam
    		{
    			get {return this.valParam;}
    		}
     
     
    	}
    lorsque je binde mon datagrid avec mon arrayList, je spécifie bien que le datagrid doit récupérer les propriétés de la classe param :
    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
    24
    25
    26
    27
    28
    29
     
    this.dataGrid1.DataSource = contenuFic;
     
    			DataGridTableStyle ts = new DataGridTableStyle();
    			ts.MappingName = "ArrayList";
     
    			int colwidth = (dataGrid1.ClientSize.Width
    				- ts.RowHeaderWidth
    				- SystemInformation.VerticalScrollBarWidth - 5) / 2;
     
     
    			DataGridTextBoxColumn cs = new DataGridTextBoxColumn();
    			cs.MappingName = "nomDuParam"; 
     
    			cs.HeaderText = "Nom du paramètre";
    			cs.Format = "f4";
    			cs.Width = colwidth;
    			ts.GridColumnStyles.Add(cs);
     
    			cs = new DataGridTextBoxColumn();
    			cs.MappingName = "valDuParam";  
     
    			cs.HeaderText = "Valeur du paramètre";
    			cs.Format = "f4";
    			cs.Width = colwidth;
    			ts.GridColumnStyles.Add(cs);
     
    			dataGrid1.TableStyles.Clear();
    			dataGrid1.TableStyles.Add(ts);
    A l'exécution, l'affichage du contenu du fichier se fait bien dans le datagrid, mais impossible de modifier le contenu du datagrid (et donc de l'arrayList).

    La propriété readOnly du datagrid est bien a false.

  4. #4
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut
    c'est pas juste les accesseurs en ecriture (set) que tu n'as pas implementer dans la classe param qui manque ?

    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
    24
    25
    26
    27
    28
    29
     
    public class param
       {
          private string nomParam;
          private string valParam;
     
          //constructeur
          public param(string nom, string val)
          {
             this.nomParam = nom;
             this.valParam = val;
          }
     
          //property nomDuParam
          public string nomDuParam
          {
             get {return this.nomParam;}
             set ...
          }
     
          //property valDuParam
          public string valDuParam
          {
             get {return this.valParam;}
             set ...
          }
     
     
       }
    je ne suis pas sur mais tu peux tjr essayer.

    @+

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 8
    Par défaut
    En effet c'était ca ^^ merci beaucoup. J'édite le titre

  6. #6
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut
    Citation Envoyé par Kaïn
    En effet c'était ca ^^ merci beaucoup. J'édite le titre
    comptent que cela marche.
    pour mettre resolu tu n'es pas obligé d'editer le titre.
    tu as un bouton resolu en bas normalement.

    @+

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

Discussions similaires

  1. Pb lors de modification de valeur d'attribut d'une classe.
    Par cecileWaseda dans le forum C++Builder
    Réponses: 4
    Dernier message: 04/08/2006, 23h19
  2. Réponses: 2
    Dernier message: 11/07/2006, 12h02
  3. [c#]Modifer la valeur d'une DataGrid
    Par guillaume16 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/05/2006, 16h21
  4. Modifer une valeur dans un panier sans la valider
    Par budiste dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2006, 09h53
  5. [VB6]Modification de valeurs dans une MSflexgrid
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 14/02/2006, 08h48

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