none
Touche CTRL dans un DataGridView

    Question

  • Bonjour,

    J'ai un dgv, comment faire pour controler quand on pousse sur la touche CTRL et qu'on fait un double click dans une cellule?

    Merci de votre aide

    Salva

     

    Thursday, January 27, 2011 11:50 AM

Answers

  • Bonjour,

    Voila comment j'ai résolus le problème, ce n'est pas peut-être pas aussi "élégant" mais ca marche

    Dim Touche_CTRL As Boolean = False

     

    Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown

     Touche_CTRL =True

     Sub

     

    Sub DataGridView1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyUp

     Touche_CTRL =False

     Sub

     

    Sub DataGridView1_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick

     If Touche_CTRL = True And e.ColumnIndex = 2 Then

    DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value =

    MsgBox("Touche CTRL et Double Click"

    )

     End If

     Sub

     

    merci pour vos réponses

    a bientôt

    Salva

     

    "OK"

    Wednesday, February 02, 2011 7:40 AM

All replies

  • Bonjour,

    Vous pouvez utiliser les évènements CellDoubleClick et KeyDown comme suit :

     Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
        MsgBox("double clic dans la cellule")
      End Sub
    
      Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
        If e.Control Then
          MsgBox("Touche CTRL appuyée")
        End If
    
    Cordialement.

    Thursday, January 27, 2011 4:08 PM
    Moderator
  • Bonjour,

    Merci pour votree reponse.

    Dans votre reponse, si on ne pousse pas sur CTRL mais qu'on fait un double click, on execute ce qu'il ce trouve dans :

    Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
        MsgBox("double clic dans la cellule")
      End Sub

    Ce que je veux c'est controler la touche CTRL et le double click dans le meme evenement.

    Cordialement

    Salva

    Friday, January 28, 2011 8:07 AM
  • Bonjour,

    Les signatures des évènements ne correspondent pas, je propose donc ce code :

      Event clicOuCtrl(ByRef message As String) 'evenement permettant de gérer les clics ou la touche CTRL
    
      Sub CTRL_Et_Db(ByRef message As String) Handles Me.clicOuCtrl 'procédure pouvant recevoir les deux evenements
        MsgBox(message)
      End Sub
      Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
        RaiseEvent clicOuCtrl("Double clic")
      End Sub
    
      Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
        If e.Control Then
          RaiseEvent clicOuCtrl("CTRL")
        End If
      End Sub
    

    Je sais pas si il correspond bien à vos attentes.

    Cordialement.

    Friday, January 28, 2011 5:38 PM
    Moderator
  • Bonjour,

     

    Merci Michel K pour cette solution !

     

    Salva56, est-ce que cette réponse vous convient ?

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    Monday, January 31, 2011 1:10 PM
  • Bonjour,

    Voila comment j'ai résolus le problème, ce n'est pas peut-être pas aussi "élégant" mais ca marche

    Dim Touche_CTRL As Boolean = False

     

    Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown

     Touche_CTRL =True

     Sub

     

    Sub DataGridView1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyUp

     Touche_CTRL =False

     Sub

     

    Sub DataGridView1_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick

     If Touche_CTRL = True And e.ColumnIndex = 2 Then

    DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value =

    MsgBox("Touche CTRL et Double Click"

    )

     End If

     Sub

     

    merci pour vos réponses

    a bientôt

    Salva

     

    "OK"

    Wednesday, February 02, 2011 7:40 AM