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 :

DataGrid et DataGridViewCheckBoxColumn [Débutant]


Sujet :

Windows Forms

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut DataGrid et DataGridViewCheckBoxColumn
    Bonjour,

    Je souhaite interdit la possibilité de cocher une case à cocher contenue dans chacune des lignes d'une datagrid , si le contenue de la ligne ne respecte pas certains critères.

    Je pars sur cet évènement : CellValueChanged

    Si la valeur de ma case à cocher change donc si je la coche , et que ma ligne ne satisfait pas à mes critères , je veux la décocher.

    Voici mon code :

    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
    38
    39
     
     
            private void dataGridViewImport_CurrentCellDirtyStateChanged(object sender, EventArgs e)
            {
                if (dataGridViewImport.IsCurrentCellDirty)
                {
                    dataGridViewImport.CommitEdit(DataGridViewDataErrorContexts.Commit);
                }
            }
     
    .....
     
    // If a check box cell is clicked, this event handler disables  
            // or enables the button in the same row as the clicked cell.
            private void dataGridViewImport_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                int indexRow = e.RowIndex; //Index de la ligne
     
                if (indexRow != -1)
                {
                    //bouton_affectation_indi viduel_creneau
                    if (e.ColumnIndex == dataGridViewImport.Columns["SELECTION"].Index)
                    {
                        if ((bool)dataGridViewImport.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == true)
                        {
                            //analyse des champs obligatoires
                            List<string> mandatoryProperty = new List<string>();
                            Participant participant = listParticipants[indexRow];
                            mandatoryProperty = mandatory_Analysis(participant);
                            if (mandatoryProperty.Count > 0)
                            {
                                                            dataGridViewImport.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 0;
                                dataGridViewImport.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
                                dataGridViewImport.Invalidate();
                            }
                        }
                    }
                }
            }
    Je vois pas ce qui cloche mais le blocage ne se fait pas .....

    Quelqu'un a t'il une idée ?

  2. #2
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    trouvé ....

    pour ceux que cela peut intéresser ...

    Dans cette section en cas d'erreur je donne le focus sur un bouton de mon interface ... et le tour et joué .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                                if (mandatoryProperty.Count > 0)
                                {
                                    btimportFile.Focus();
                                    btimportFile.Select();
    
                                    //formatingLine = false;
                                    dataGridViewImport.Rows[e.RowIndex].Cells["SELECTION"].Value = 0;
                                    dataGridViewImport.Rows[e.RowIndex].Cells["SELECTION"].Selected = true;
                                    dataGridViewImport.Invalidate();
                                                                    
                                    //formatingLine = true;
                                    
                                }

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

Discussions similaires

  1. [VB.net] Changer couleur ligne DataGrid
    Par bguihal dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/07/2016, 06h54
  2. Pb d'update dans une DataGrid
    Par bidson dans le forum XMLRAD
    Réponses: 11
    Dernier message: 27/05/2003, 14h11
  3. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44
  4. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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