none
Donner le "Focus" a une cellule RRS feed

  • Question

  • Bonjour,

    J'ai un petit problème, je ne sais plus .... !!!!

    if ( e.RowIndex > 0 && e.ColumnIndex >= 8 )

    {

    Dgv_Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;

    Dgv_Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Black ;

    if (e.ColumnIndex ==8)

    {

              Dgv_Grid.Rows[e.RowIndex].Cells[9].Selected =true ;

    }

    }

     

    Ce que je veux faire c’est :

    Quand on clique dans une cellule, rendre la cellule active pour modifier son contenu.

    Quand on fait ENTER, passer a la cellule définie ( Dgv_Grid.Rows[e.RowIndex].Cells[9].Selected =true ; )

    Et la rendre modifiable.

    Je n’arrive pas a trouver la bonne méthode.

    Merci de votre aide

     

    Cordialement

     

    Salva

     

    samedi 13 novembre 2010 10:16

Réponses

  • Bonjour,

    Pour traiter la touche ENTER, il va falloir créer et utiliser une classe qui hérite de DataGridView. Ensuite surchargez la méthode ProcessCmdKey :

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    	if (keyData == Keys.Enter)
    	{
            // La touche Enter a été modifiée
         }
    }
    

    Utilisez alors les méthodes SetSelectedCellCore() et SetCurrentCellCore() pour changer la cellule courante.

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Proposé comme réponse Papy Normand lundi 15 novembre 2010 13:28
    • Marqué comme réponse Audrey PETIT mardi 16 novembre 2010 11:15
    dimanche 14 novembre 2010 23:01
    Modérateur

Toutes les réponses

  • Bonjour,

    Pour traiter la touche ENTER, il va falloir créer et utiliser une classe qui hérite de DataGridView. Ensuite surchargez la méthode ProcessCmdKey :

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    	if (keyData == Keys.Enter)
    	{
            // La touche Enter a été modifiée
         }
    }
    

    Utilisez alors les méthodes SetSelectedCellCore() et SetCurrentCellCore() pour changer la cellule courante.

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Proposé comme réponse Papy Normand lundi 15 novembre 2010 13:28
    • Marqué comme réponse Audrey PETIT mardi 16 novembre 2010 11:15
    dimanche 14 novembre 2010 23:01
    Modérateur
  • Bonjour,

    Merci pour la reponse, je vais appliquer ca !

    Cordialement

    Salva

    lundi 15 novembre 2010 07:11
  • Comment on peut faire un tableau comme dans excel, c'est une fonction personnalisé?
    lundi 15 novembre 2010 17:51
  • Bonjour,

    Jean-Flavien, merci de bien vouloir ouvrir un nouveau sujet de discussion pour une nouvelle question !

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    lundi 15 novembre 2010 19:52
    Modérateur