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 :

[VB.NET] keyPress dans un datagrid [FAQ]


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Points : 158
    Points
    158
    Par défaut [VB.NET] keyPress dans un datagrid
    bonjour
    je veux savoir si je peux capturer l'appui sur la touche "entrée" dans une des cellule du datagrid

    si un evnement existe ou dois je personliser cet evenement

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Pourquoi pas tout simplement l'evenement keyPress du Datagrid :

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Points : 158
    Points
    158
    Par défaut
    car cela est impossible.
    la touche entrée ne peut etre capturée par cet évenement.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut


    Pourquoi cela :

    C'est assez bizarre que cette touche ne soit pas interceptée....

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Points : 158
    Points
    158
    Par défaut
    il faut créer une nouvelle classe qui hérite du DataGrid et redéfinir la fonction ProcessCmdKey
    mais le problème c que la classe qui herite de ce composant ne s'affiche pas , je croit que je n'ai pas défini toute les fonctions

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Jette un oeil ici:
    http://www.dotnet247.com/247reference/msgs/50/250024.aspx

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Points : 158
    Points
    158
    Par défaut
    ça ne m'aide pas trop
    tu n'aura pas un exemple ou on crée une nouvelle classe qui herite de la classe DataGrid
    je veux savoir quelles fonctions il faut redéfinir

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Hum.. J'avoue que non, j'ai rien de cela sous la main, désolé...

    Mais jette un oeil sur Google

  9. #9
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut Re: [VB.NET] keyPress dans un datagrid
    Citation Envoyé par nkonito
    bonjour
    je veux savoir si je peux capturer l'appui sur la touche "entrée" dans une des cellule du datagrid
    si un evnement existe ou dois je personliser cet evenement
    merci d'avance
    Morpheus te met sur la bonne voie en te suggerant la capture du KeyPress du DataGrid
    Le principe c'est qu'une fois que l'evènement est declenché tu as besoin de savoir le DataGrid.CurrentCell dont tu pourras déduire les Propriétés DataGridCell.ColumnNumber et DataGridCell.RowNumber
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub datagrid1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles datagrid1.KeyPress
        If (e.KeyChar = ChrW(Keys.Enter)) Then
            ' ici le code du traitement de la cellule courante
        End If
    End Sub

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Points : 158
    Points
    158
    Par défaut
    salut naguib
    je dois dire que j'ai fait ce que morpheus m' proposé avant qu'il me le propose mais ça n'avait pas marché.
    j'ai reglé le problème en créant une classe qui hérite de la classe datagrid et j'ai redéfinit la méthode "ProcessCmdKey" et ça a marché.
    je pense que le problème du KeyPress est qu'il ne peut pas intercepter les touches de commande (et la touche "entrée" en fait partie).
    salut et merci à vous

  11. #11
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Si tu pouvais nous faire partager cette classe, cela pourrait servir à d'autres

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 194
    Points : 158
    Points
    158
    Par défaut
    voici le code de cette classe

    Public Class DataGridPerso
    Inherits System.Windows.Forms.DataGrid



    #Region " Code généré par le Concepteur de composants "

    Public Sub New(ByVal Container As System.ComponentModel.IContainer)

    MyClass.New()

    'Requis pour la prise en charge du Concepteur de composition de classes Windows.Forms
    Container.Add(Me)
    End Sub

    Public Sub New()
    MyBase.New()

    'Cet appel est requis par le Concepteur de composants.
    InitializeComponent()

    'Ajoutez une initialisation quelconque après l'appel InitializeComponent()

    End Sub

    'La méthode substituée Dispose du composant pour nettoyer la liste des composants.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
    If Not (components Is Nothing) Then
    components.Dispose()
    End If
    End If
    MyBase.Dispose(disposing)
    End Sub

    'Requis par le Concepteur de composants
    Private components As System.ComponentModel.IContainer

    'REMARQUE*: la procédure suivante est requise par le Concepteur de composants
    'Elle peut être modifiée à l'aide du Concepteur de composants.
    'Ne la modifiez pas en utilisant l'éditeur de code.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    components = New System.ComponentModel.Container
    End Sub

    #End Region



    'Cette fonction permet de capturer l'appui sur la touche entrée

    Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean

    'Si la touche "entée" est enfoncée
    If msg.WParam.ToInt32() = CInt(Keys.Enter) Then

    'Faire le traitement spécifique

    Return True

    End If

    Return MyBase.ProcessCmdKey(msg, keyData)

    End Function

    End Class

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

Discussions similaires

  1. [VB.NET] Total dans un datagrid
    Par Golzinne dans le forum Windows Forms
    Réponses: 10
    Dernier message: 12/11/2005, 18h29
  2. [VB.NET] Linkbutton dans un DataGrid
    Par Sadneth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/10/2005, 10h57
  3. [VB.NET] Naviguer dans un DATAGRID a l'aide de 2 boutons
    Par stephane93fr dans le forum Windows
    Réponses: 3
    Dernier message: 13/06/2005, 12h39
  4. [VB.NET] Ajout dans un datagrid
    Par geget dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/12/2004, 19h54
  5. [VB.NET] Tooltips dans un DataGrid
    Par seemax dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/04/2004, 14h16

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