Partage
  • Partager sur Facebook
  • Partager sur Twitter

utilisation point pavé numérique dans datagridview

Sujet résolu
    22 mars 2012 à 19:51:13

    Bonjour à tous,
    je voudrais pouvoir utiliser le point du pavé numérique dans un datagridview
    donc il me faut un programme qui permette de remplacer le point par une virgule.
    J'ai réalisé cela, il n'y a pas d'erreur mais cela ne fonctionne pas.
    Une idée de pourquoi mon programme ne fonctionne pas?
    Merci
    Cordialement

    Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
     
            ' on récupère le control TextBox de la cellule qui est édité        
     
            Dim voControl As DataGridViewTextBoxEditingControl = Nothing
     
            voControl = CType(e.Control, DataGridViewTextBoxEditingControl)
     
            Select Case Me.DataGridView1.Columns(DataGridView1.CurrentCell.ColumnIndex).Name
                ' si la colonne qui est éditée est coefficientimpermeabilisation alors on gère l'événement KeyPress du TextBox             
     
                Case "coefficientimpermeabilisation"
     
                    RemoveHandler voControl.KeyPress, AddressOf EditingControl_KeyPress
     
                    AddHandler voControl.KeyPress, AddressOf EditingControl_KeyPress
                Case Else
                    RemoveHandler voControl.KeyPress, AddressOf EditingControl_KeyPress
            End Select
        End Sub
     
        Private Sub EditingControl_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
     
            ' on accepte que les caractères numériques, le point, ou la virgule        
     
            e.Handled = Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Or e.KeyChar = "." Or e.KeyChar = ",")
     
            ' on récupère le texte du TextBox
     
            Dim txt As String = CType(sender, DataGridViewTextBoxEditingControl).Text
     
            ' on s'assure que le point ou la virgule n'a été tapé qu'une fois
     
            If (InStr(txt, ".") > 0 Or InStr(txt, ",") > 0) And (e.KeyChar = "." Or e.KeyChar = ",") Then
                e.KeyChar = Nothing
            Else
                ' on remplace le point par une virgule ou la virgule par un point en fonction du séparateur décimal utilisé dans la culture en cours
     
                Dim vsDecimalSeparator As Char
     
                If vsDecimalSeparator = "." And e.KeyChar = "." Then
                    e.KeyChar = ","
                End If
            End If
     
        End Sub
    
    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2012 à 11:27:16

      N'as - tu jamais penser au String.replace() après l'édition de ta ligne ?

      Sinon est-ce que tu passe dans tes évènement?


      • Partager sur Facebook
      • Partager sur Twitter
      Ceci est une signature
        26 mars 2012 à 18:22:49

        Oui j'ai déjà essayé String.replace() mais cela ne fonctionne pas non plus.
        • Partager sur Facebook
        • Partager sur Twitter

        utilisation point pavé numérique dans datagridview

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown