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

C# Discussion :

DataGridView readonly modifier une cellule


Sujet :

C#

  1. #1
    Membre confirmé

    Homme Profil pro
    Informaticien Généraliste
    Inscrit en
    Mai 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informaticien Généraliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 78
    Par défaut DataGridView readonly modifier une cellule
    Bonjour

    J'ai un datagridview en readonly car on ne doit pouvoir le modifié que après avoir fais un clique droit sur la cellule puis sélectionner "Définir", mais je ne sais pas comment enlever le readonly le temps que je rentre les données dans ma cellules et la "refermé" aprés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      int col = Contexte.CurrentCell.ColumnIndex;
                int lig = Contexte.CurrentCell.RowIndex;
     
                Contexte[col, lig].ReadOnly = false;
    Ne marche pas

    Merci,

    Alexis

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    On ne peut pas rendre une cellule éditable si le DGV lui-même est ReadOnly ; il faut donc mettre ReadOnly = false sur le DGV le temps d'éditer la cellule

  3. #3
    Membre confirmé

    Homme Profil pro
    Informaticien Généraliste
    Inscrit en
    Mai 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informaticien Généraliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 78
    Par défaut
    je me doute bien, mais après la modification le remette en non éditable je vois pas comment faire,

    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    datagrid.readonly = false;
    datagrid.readonly = true;
    ça ne marcheras pas alors que dois je mettre entre les deux, il existe un wait ou sleep...

    Merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Si j'ai bien compris, tu veux rendre la cellule éditable via une commande dans le menu contextuel. Mais à quel moment veux tu la rendre de nouveau read-only ? Si c'est quand l'utilisateur a fini d'éditer la cellule, tu peux gérer l'évènement CellEndEdit et remettre le DataGridView en read-only à ce moment là.

  5. #5
    Membre confirmé

    Homme Profil pro
    Informaticien Généraliste
    Inscrit en
    Mai 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informaticien Généraliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 78
    Par défaut
    Je sélectionne une cellule (click gauche), ensuite click droit dessus, la un menu s'ouvre je choisis "Définir" je peux modifier la cellule, ensuite des que je sors de cette cellule (entrée, click ailleurs etc...) je ne peux plus rien modifier.

    c'est mon objectif

    Merci,
    Alexis

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Voilà un mini prototype qui fonctionne :

    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
    40
    41
    42
    class Form1 : Form
    {
        DataGridView dgv;
        MenuItem editCommand;
     
        public Form1()
        {
            dgv = new DataGridView();
            dgv.Columns.Add("col1", "col1");
            dgv.Columns.Add("col2", "col2");
            dgv.Columns.Add("col3", "col3");
            dgv.ReadOnly = true;
            dgv.Dock = DockStyle.Fill;
            dgv.CellEndEdit += dgv_CellEndEdit;
            dgv.MouseClick += dgv_MouseClick;
            editCommand = new MenuItem("Edit");
            editCommand.Click += editCommand_Click;
     
            dgv.ContextMenu = new ContextMenu(new[] { editCommand });
     
            this.Controls.Add(dgv);
        }
     
        private void editCommand_Click(object sender, EventArgs e)
        {
            dgv.ReadOnly = false;
            dgv.BeginEdit(true);
        }
     
        private void dgv_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                dgv.ContextMenu.Show(dgv, e.Location);
            }
        }
     
        private void dgv_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            dgv.ReadOnly = true;
        }
    }
    Dis moi s'il y a quelque chose que tu comprends pas

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/10/2007, 09h28
  2. commnet modifier une cellule avec jexcel
    Par remy85 dans le forum Documents
    Réponses: 1
    Dernier message: 05/06/2007, 04h22
  3. Modifier une cellule d'une GridView durant l'update
    Par harry25 dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/04/2007, 11h16
  4. Comment modifier une cellule dans un JTable
    Par @yoyo dans le forum Composants
    Réponses: 10
    Dernier message: 22/03/2006, 16h48
  5. modifier une cellule deja defini par un css
    Par GroRelou dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 18/04/2005, 09h26

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