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 :

Event sur l'activation d'un checkbox d'un dgv [Débutant]


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut Event sur l'activation d'un checkbox d'un dgv
    Bonjour à tous

    Alors me revoilà sur le DotNet avec un défi assez intéressant.

    Dans mon projet, j'ai un dgv composé de CheckBox en première colonne qui sont désactivé initialement. Lorsque j'active ma CheckBox, son état passe à "True", elle deviens en mode lecture uniquement et je signal à mon systeme que l'alarme est acquitté mais ce programme est réaliser par une procédure qui scrute toutes mes lignes dans le dgv et qui est lancer en boucle dans mon Timer.

    Procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        'Une procedure qui désactive les CheckBox
        Public Sub DesactiverCheckBox(ByVal x1 As DataGridView)
            Dim z As Integer
            For z = 0 To x1.RowCount - 1
                If x1.Rows(z).Cells(0).EditedFormattedValue = True Then
                    Dim x As Integer
                    x1.Rows(z).Cells(0).ReadOnly = True
                    x = DicoAlarm2(x1.Rows(z).Cells(3).EditedFormattedValue).IdAlarm
                    DicoAlarm2(x1.Rows(z).Cells(3).EditedFormattedValue).Ack = True
                    DicoAlarm(x).Ack = True
                End If
            Next
        End Sub
    Partie dans le timer de mon Form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Private Sub tm_gestion_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tm_gestion.Tick
            If DataGridView1.RowCount >= 1 Then
                MesAlarmes.DesactiverCheckBox(DataGridView1)
        End Sub
    Alors tous cela est bien sympa mais c'est vraiment moche. De plus, maintenant je dois rajouter une procédure qui va me signaler à mon programme VB6 qu'une alarme est acquitté mais c'est pas terrible de faire sa en boucle toute les 500 ms alors j'ai pensé à un évènement qui active toute mes procédures (communication avec VB6, ReadOnly, etc...) lorsque j'active une checkbox dans mon dgv mais j'ai aucune idée de comment le faire.

    Merci d'avance pour vos suggestion !!



    PS:

    Alors j'ai trouver l'évent "CheckedChanged" qui est lié à une checkbox mais je sais pas si sa va directement marché si ma checkbox est inclu dans mon dgv.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    J'ai trouvé des pistes mais j'ai des doutes que sa marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub DataGridView1_CurrentCellDirtyStateChanged(sender As System.Object, e As System.EventArgs) Handles DataGridView1.CurrentCellDirtyStateChanged
            If CType(sender, DataGridView).CurrentCell.OwningColumn.GetType().Equals(GetType(DataGridViewCheckBoxColumn)) Then
                CType(sender, DataGridView).CommitEdit(DataGridViewDataErrorContexts.Commit)
     
                Label1.Text = CType(sender, DataGridView).CurrentCell.Value.ToString()
            End If
        End Sub
    Merci d'avance pour vos suggestions !!

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Regarde plutôt du coté de CellValueChanged avec if (e.ColumnIndex = 0) Then

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Pourquoi chercher compliquer quand il y a très très simple, merci beaucoup pour ta solution, je l'applique le plus rapidement possible.

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Voila la solution qui marche très bien, lorsque je coche une checkbox dans mon datagridview, cela indique que j'ai acquitté mon alarme, une fonction "OnChangeAcquit" est alors appelé pour signaler a mon programme (via une interface) qui se situe dans la partie VB6 que l'acquittement de l'alarme est effectuer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Public Sub Ack_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
            If (e.ColumnIndex = 0) Then
                Dim x As Integer
                Dim w As String
                w = DataGridView1.Rows(e.RowIndex).Cells(3).EditedFormattedValue
                x = MesAlarmes.DicoAlarm2(w).IdAlarm ' Permet de cherche l'alarme dans le Dico
                aInterfaceAlarme.aEventAlarme.OnChangeAcquit(MesAlarmes.DicoAlarm(x).ObjCtrl, MesAlarmes.DicoAlarm(x).IdAlarm, MesAlarmes.DicoAlarm(x).Ack)
            End If
        End Sub


    Ne pas faire attention à la partie de code qui se trouve à l’intérieur de l’événement, c'est juste pour meubler.

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par dragondumond Voir le message
    merci beaucoup pour ta solution.
    De rien.
    Merci pour ton retour de solution

    @+

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

Discussions similaires

  1. Event sur le parcours d'un combobox
    Par Psykotik dans le forum MFC
    Réponses: 11
    Dernier message: 25/11/2005, 09h20
  2. LDAP sur un active directory
    Par hutchuck dans le forum Windows Serveur
    Réponses: 8
    Dernier message: 22/11/2005, 14h10
  3. Questions sur l'activation de Windows Xp
    Par Mimi Bulles dans le forum Windows XP
    Réponses: 3
    Dernier message: 30/10/2005, 12h02
  4. window.event sur netscape
    Par edon47 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2005, 02h57

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