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#] Attribuer une valeur a une cellule d'un DataGrid


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut [C#] Attribuer une valeur a une cellule d'un DataGrid
    Bonjour,

    Je souhaiterais attribuer dynamiquement une valeur a une cellule d'un DataGrid.
    Cependant, je n'ai trouvé aucune propriété .Text ou .Value ???
    Comment faire ?

    Merci

  2. #2
    Membre habitué Avatar de del-dongo
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 183
    Points
    183
    Par défaut
    et ca, ca ne va pas..?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DataGridView d = new DataGridView();
    d.Rows[2].Cells[2].Value = 2;

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Vous devez utiliser la propriété Item de l'objet DataGrid.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DataGridView d = new DataGridView(); 
    d.Item(2,2)=2;
    En principe, tous les controles Data sont conçus pour être facilement lié avec une base de données.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Et vous le trouvez ou ce controle DataGridView ???
    moi je n'ai que DataGrid ou DataView !?

    [MAJ]
    Apres qq recherche sur google, j'ai trouvé que le dataGridView était une nouveauté du Framework .Net 2.0 !
    Cependant, j'ai oublié de préciser que j'étais sous Visual Studio 2003, dc .Net 1.1...

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    WOLO Laurent t'a tout de même montrer la piste
    transforme en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DataGrid1(numeroLigne, numeroColonne) = "valeur à afficher";
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    bah j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.dataGrid' désigne 'champ' où 'méthode' était attendu

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.DataGrid1(numeroLigne, numeroColonne).Text = "valeur à afficher";
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.DataGrid1(numeroLigne, numeroColonne).Value= "valeur à afficher";
    non :

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ben t'aurais pu corriger ma traduction C# approximative
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DataGrid1[numeroLigne, numeroColonne] = "valeur à afficher";
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    la propriété Cells n'existe pas
    sinon, ca serait trop beau ! lol

  10. #10
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par linuxludo
    la propriété Cells n'existe pas
    sinon, ca serait trop beau ! lol
    je te comprends pas je viens de te donner la réponses corrigée avec la modification des parenthèses en crochets
    de plus ce n'est pas Cells mais Item

    >>meuh non Morpheus une DataGridCell n'a jamais eu ces propriétés, t'aurais dû voir mes parenthèses inappropriées de vbciste
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par neguib
    Ben t'aurais pu corriger ma traduction C# approximative
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DataGrid1[numeroLigne, numeroColonne] = "valeur à afficher";
    Ok, ca c'est bon, ca marche !!!!
    Merci...

    Maintenant, autre pb ! (je sais, je suis chiant lol)
    J'ai un data grid et un dataset...
    je voudrais qu'une table de mon dataset soit automatiquement modifiée qd je modifie d'autre table...

  12. #12
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    soit un petit peu plus precis crois tu réellement avoir donné suffisamment sur ton architecture pour que moi qui ne l'ai pas devant les yeux je puisses jouer aux devinettes
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Désolé...
    Voici mon architecture :
    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
    30
    31
    32
    33
    34
    35
    36
    37
     
    DataSet
     
         + Table0
                + Col0
                + Col1
     
         + Table1
                + Col0
                + Col1
                + Col2
                + Col3
     
         + Table2
                + Col0
                + Col1
                + Col2
                + Col3
                + Col4
     
         + Table3
                + Col0
                + Col1
                + Col2
     
         + Table4
                + Col0
                + Col1
                + Col2
     
         + Table5
                + Col0
                + Col1
                + Col2
                + Col3
                + Col4
                + Col5
    Je précise toute fois que je me sert du dataGrid avec AUCUNE BDD !
    C'est juste pour mettre en forme mes données...(et puis je trouvais ce composant pas mal niveau design pour mon appli).

    Chaque table ne possedera que une ligne !
    Chaque champs est de type System.Decimal sauf Table5.Col5 qui est bool.

    Donc en fait, je souhaite afficher dans la table 5, la somme des champs d'une table.

    Plus concretement :
    Table5.Col0 = Somme de la ligne0 de Table0
    Table5.Col1 = Somme de la ligne0 de Table1
    Table5.Col2 = Somme de la ligne0 de Table2
    Table5.Col3 = Somme de la ligne0 de Table3
    Table5.Col4 = Somme de la ligne0 de Table4
    Table5.Col5 = Si Somme (Table5.Col0 à Table5.Col4) > 50 alors true sinon false

    Voilou...j'espere que j'ai bien fourni ts les renseignements qu'il te faut pour pouvoir m'aider...

    Merci bcp

  14. #14
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Globalement l'idée serait que tu dérives ton propre DataSet typé qui capture l'Événement DataTable.RowChanged pour Table0 à Table4 afin de traiter la modification effectuée vers Table5
    Par exemple (c'est du vite fait donc à perfectionner)
    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
     
    using System;
    using System.Data;
    //...
    public class MyDataSet : DataSet
    {
       //...quelquepart lors de l'initialisation
       this.Tables["Table0"].RowChanged += new DataRowChangeEventHandler(this.RowChanged);
       this.Tables["Table1"].RowChanged += new DataRowChangeEventHandler(this.RowChanged);
       this.Tables["Table2"].RowChanged += new DataRowChangeEventHandler(this.RowChanged);
       this.Tables["Table3"].RowChanged += new DataRowChangeEventHandler(this.RowChanged);
       this.Tables["Table4"].RowChanged += new DataRowChangeEventHandler(this.RowChanged);
       //...
       public void RowChanged(object sender, DataRowChangeEventArgs e)
       {
         //... par exemple
         if (e.Action == DataRowAction.Change)
           {
              string tableName = ((DataTable) sender).TableName;
              DataRow dr = e.Row;
              // faire la modif necessaire vers la colonne concernée dans Table5 ...
           }
       }
      //...
    }
    J'espère que Table5 est elle même dérivée de DataTable afin d'automatiser ses differents calculs lors d'une modif d'une de ses colonnes
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci !
    je vais essayer ca

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    bon j'ai pas trop reussi cette solution...
    Mais j'en ai trouvé une autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void Form_Load(object sender, System.EventArgs e)
    {
       this.dataSet.Tables[5].Rows.Add(new object[6]);
    }
    private void dataGrid_CurrentCellChanged(object sender, System.EventArgs e)
    {
       this.dataSet.Tables[5].Rows[0][0] = MaValeur;
    }
    Merci encore a vous tous pour m'avoir aider...
    Je vous en suis tres reconnaissant...

  17. #17
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Mouais apparemment t'es pas à un bricolage près
    CurrentCellChanged n'a jamais voulu dire que la valeur a été modifié
    Il n'est pas logique d'utilisé des affichages de l'Interface utilisateur (Datagrid) alors qu'il s'agit ici des données sousjascentes soit le DataSet en ce qui te concerne
    Mais bon tu sembles heureux ainsi
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

Discussions similaires

  1. [XL-2010] Comment tranférer une valeur d'une listbox (userform) à une cellule de worksheet?
    Par Guy7090 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2014, 14h29
  2. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  3. [XL-2003] Recopier une ligne selon une valeur d'une cellule donnée.
    Par bokgkik dans le forum Excel
    Réponses: 2
    Dernier message: 07/12/2011, 19h00
  4. Pb copier une valeur d'une textbox vers une cellule
    Par whykiki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/12/2007, 11h49
  5. Sélectionner seulement une partie d'une valeur d'une cellule
    Par ArthurO0O dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/08/2007, 11h05

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