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 :

[.NET 2.0][C#] DataGridViewCheckBoxCell


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut [.NET 2.0][C#] DataGridViewCheckBoxCell
    Bonjour,

    J'essaie de construire une liste de prestations sélectionnées sur un produit dans une datagridview : une colonne comportant l'intitulé et une autre avec des cases à coché.

    Je récupère dans ma base un liste des prestations associées au produit et je voudrais cocher la case correspondante.

    Voilà le code. Ca compile. Ca passe bien dans les bonnes boucles suivant les cas. Mais ca coche pas la case... Bouhouhou...

    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
     
            private void refreshPrestations()
            {
                ArrayList l_list = new ArrayList();
                DataSet l_dsSelectedPrestations = Produit.GetCeProduitPrestations(id_produit);
                DataGridViewCheckBoxCell l_selected_cell;
     
                foreach (DataRow row in l_dsSelectedPrestations.Tables[0].Rows)
                {
                    l_list.Add((int)row[SWProduit.TYPEPRES_ID]);
                }
                for (int i = 0; i < s_dgv_prestationDisponible.Rows.Count; i++)
                {
                    int l_pres_id = (int)s_dgv_prestationDisponible.Rows[i].Cells[Produit.TYPEPRES_ID].Value;
                    if (l_list.Contains((int)l_pres_id))
                    {
                        l_selected_cell = (DataGridViewCheckBoxCell)s_dgv_prestationDisponible.Rows[i].Cells["TYPEPREST_SELECTED"];
                        //l_selected_cell.
                        l_selected_cell.Value = true;
                        l_selected_cell.Selected = true;
                    }
                }
            }

  2. #2
    Membre confirmé Avatar de boulete
    Profil pro
    Inscrit en
    Février 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2006
    Messages : 132
    Par défaut
    [code]l_selected_cell.Selected = true;[\code]

    Fais plutot
    [code]l_selected_cell.Checked= true;[\code]

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut
    L'attribut Checked n'existe pas...

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut
    C'est bien l'attribut Value qui permet de cocher.

    Pour avoir passer l'après-midi sur ce [censuré] de datagridViewCheckedCell, je crois qu'il y a reellement un bug dans ce contrôle, parce que j'ai réussi à faire des trucs de fou. Pour exemple :
    Ma fonction ne marche pas si je la mets à la fin de mon form_load...
    Si je la mets dans un bouton elle marche uniquement si je vois le datagridview (il est dans un onglet)... Si je suis dans l'onglet d'à côté, ca marche pas...

    Un problème de focus peut être ???

    J'en peux plus. J'ai trouvé une solution sur les forum microsoft anglais mais c'est moche : il le remplace par une colonne text et met un "X" si c'est vrai...

    Si qq1 trouve qq chose je suis preneur.

    Bonne soirée,

    L.

  5. #5
    Membre confirmé Avatar de boulete
    Profil pro
    Inscrit en
    Février 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2006
    Messages : 132
    Par défaut
    T'as raison, j'ai vérifié, y'a pas de checked.
    Mais je coche de cette manière, très simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonDataGrid.Rows(i).cells(0).value=1
    et je décoche aussi simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonDataGrid.Rows(i).cells(0).value=0
    Moi, je suis en vb2005

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 44
    Par défaut
    J'ai eu un peu le meme style de problème.

    Je dois effectuer une action particulière sur le clic sur ma checkbox et pour cela j'ai besoin de savoir si elle est cochée ou non. J'ai pu m'apercevoir que maCell.Value ne correspondait pas à la valeur cochée/décochée actuelle.

    Pour corriger ce problème, une astuce est fournie dans l'aide de VS2005 qui consiste à utilise la méthode CommitEdit de la grille. Le résultat obtenu fonctionne, voici un exemple d'implémentation dans l'evenement ContentCellClick de ma grille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DataGridViewCheckBoxCell cbxCell = monDataGridView.Rows[e.RowIndex].Cell[e.ColumnIndex] as DataGridViewCheckBoxCell;
    if (cbxCell != null)
    {
        cbxCell.DataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
        if (cbxCell.Value != null)
        MessageBox.Show(cbxCell.Value.ToString());
    }

Discussions similaires

  1. [Débat] Technologie .NET vs JAVA
    Par neo.51 dans le forum Débats sur le développement - Le Best Of
    Réponses: 1047
    Dernier message: 14/01/2019, 16h15
  2. [Débat] Expériences au sujet de .NET
    Par DevX dans le forum Débats sur le développement - Le Best Of
    Réponses: 46
    Dernier message: 25/05/2014, 11h16
  3. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  4. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  5. Fichier PDOXUSRS.NET
    Par yannick dans le forum Paradox
    Réponses: 5
    Dernier message: 05/04/2002, 09h45

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