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

VB.NET Discussion :

personnalisation colonne datagridview


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Par défaut personnalisation colonne datagridview
    Bonjour,
    voilà j''utilise un datagridview avec 5 colonne. cependant, les 3 dernières doivent exclusivement
    contenir des valeurs décimales.
    Je ne sais pas du tout comment faire pour vérifier que les valeurs entrées dans ces 3 colonnes sont bien des valeurs décimal.
    A quel événement doivent faire la vérification de saisie ?
    En plus, la 3eme colonne est en faite le produit des 2 précédentes, du coup je ne sais pas non plus quel événement utilisé.

    Merci à vous.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Une possibilité :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
        Public Sep As String
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            Dim Culture As CultureInfo
            Dim FormatInfo As NumberFormatInfo
     
            'récupère le séparateur décimal
            Culture = CultureInfo.InstalledUICulture
            FormatInfo = Culture.NumberFormat
            Sep = FormatInfo.NumberDecimalSeparator
     
            'suite de ton code si il y a dans Load...
     
        End Sub
     
        Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
     
            With DataGridView1
     
                'teste la colonne, à adapter
                Select Case .CurrentCell.ColumnIndex
     
                    Case 2, 3, 4
     
                        Try
     
                            'si pas de présence du séparateur décimal, génère une erreur
                            If InStr(.CurrentCell.Value, Sep) = 0 Then
     
                                Err.Raise(vbObjectError + 1000)
     
                            End If
     
                        Catch ex As Exception
     
                            MsgBox("La valeur doit être décimale !", _
                                   MsgBoxStyle.Exclamation, _
                                   "Test")
     
                            .CurrentCell.Value = ""
     
                        End Try
     
                End Select
     
            End With
     
        End Sub
     
        'ci-dessous, Pas obligatoire pour ce que tu veux faire mais peut être pratique
        Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
     
            Dim Cellule As DataGridViewTextBoxEditingControl
     
            Try
                'contrôle ce qui est entrée et si c'est un point ou une virgule
                'le modifie si nécessaire
                Cellule = CType(e.Control, DataGridViewTextBoxEditingControl)
                AddHandler Cellule.KeyPress, AddressOf Separateur
     
            Catch ex As Exception
     
            End Try
     
        End Sub
     
        Private Sub Separateur(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
     
            'modifie le séparateur si il ne correspond pas
            'offre la possibilité à l'utilisateur du point ou de la virgule
            If e.KeyChar = "." Or e.KeyChar = "," Then
                If e.KeyChar <> Sep Then
                    e.KeyChar = Sep
                End If
            End If
     
        End Sub
    Hervé.

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Par défaut
    J'ai trouvé plus simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datagridview.column(index).valuetype= gettype(decimal)
    ensuite, il l'utilisateur entre du texte dans la colonne concernée, il obtient un message d'erreur. Puis pour personnaliser le message d'erreur, il suffit de le faire pour l'événement Datagridview.dataerror.

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

Discussions similaires

  1. Redimensionnement colonne datagridview
    Par mactwist69 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/05/2008, 11h32
  2. Désactivation Tri colonne Datagridview
    Par jeepibmx dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/04/2008, 14h23
  3. vb.net - Modifier type colonne DataGridView
    Par House MD dans le forum VB.NET
    Réponses: 10
    Dernier message: 08/04/2008, 15h05
  4. Comment re-indexer des colonnes DataGridView
    Par Contrec dans le forum C#
    Réponses: 1
    Dernier message: 01/10/2007, 09h06
  5. Format d une colonne DataGridView en durée ?
    Par Slumpy dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/09/2007, 18h54

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