CheckBox, Evenement Click souris et Egalité

Signaler
Messages postés
16
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
23 décembre 2008
-
Messages postés
78
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
25 novembre 2016
-
Bonjour les codeurs fous,
    je suis à la recherche d'une info sur les checkbox en VB.
    Private Sub Check1_Click()
       If Check2.Value = 1 Then
          Check2.Value = 0
       Else
          Check2.Value = 1
       End If
    End Sub
 
    Private Sub Check2_Click()
       If Check1.Value = 1 Then
          Check1.Value = 0
       Else
          Check1.Value = 1
       End If
     End Sub

L'exemple ci-dessus illustre bien ce que je désire faire : Une check_box en modifie une autre et inversement.
Mon problème est le suivant :
   lorsque l'interpréteur du VB passe sur une ligne du type Check2.Value = 0, il va directement dans la procedure
   Private Sub Check2_Click().
Comment éviter cela ???
J'aimerai changer l'état de la Check_Box sans que le Vb interprète cela comme un click souris.

Merci du coup de main.

Le Père Noel à 364 jours de RTT.

7 réponses

Messages postés
78
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
25 novembre 2016

Pourquoi n'utilises tu pas des RadioButtons qui sont bien mieu étudié pour cet usage ???
Joyeux noel.

DOVAX
Messages postés
78
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
25 novembre 2016

Sinon si tu veux garder l'idée des CheckBoxs voici mon astuce qui fonctionne tout à fait bien entre 2 chekbox :

Private
Sub CheckBox_CheckedChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged

If sender
Is CheckBox1
ThenCheckBox2.CheckState = 1 - CheckBox1.CheckState

ElseCheckBox1.CheckState = 1 - CheckBox2.CheckState

End
If

End
SubJoyeux Noel.

DOVAX
Messages postés
16
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
23 décembre 2008

Re,

   mon exemple est un mauvais exemple, en fait, je gère 25 Check_Box et chacune à une incidence sur les 24 autres de manière différente bien évidemment.
   et le radio bouton est trop binaire pour le type d'utilisation que je désire.

La mère Noël à une soirée de paix par an
Messages postés
78
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
25 novembre 2016

Ben tu souhaites faire quoi plus exactement ?

DOVAX
Messages postés
16
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
23 décembre 2008

J'ai un tableau de n colonnes par m lignes (Comme une table de base de données).
Mon IHM permettra à des utilisateurs de :
  1 - Afficher plus ou moins de colonne de ce tableau
  2 - Quand ces colonnes sont affichées, avoir la possibilité de les trier.

pour le 1 : une CheckBox par colonne.
pour le 2, deux CheckBox par colonne (Tri croissant ET Tri décroissant).
lorsque la CheckBox de visu est cochée alors seulement une CheckBox de Tri est cochée

lorsque la CheckBox de visu n'est pas cochée alors les CheckBox de Tri sont disabled
Messages postés
48
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
9 novembre 2009

Salut ;
Voici une autre astuce :
Pour quoi ne pas déclarer un variable global de type boolean var1 ;
False
Private Sub Check1_Click()
     If var1 =  True then Exit Sub
     var1 =  True
       If Check2.Value = 1 Then
          Check2.Value = 0
       Else
          Check2.Value = 1
       End If
      var1 =  False
End Sub
  
Private Sub Check2_Click()
   If var1 =  True then Exit Sub
   var1 =  True
       If Check1.Value = 1 Then
          Check1.Value = 0
       Else
          Check1.Value = 1
       End If
     var1 =  False
End Sub


Var1 peut être utiliser pour tous les autre CheckBox, pas la pêne de déclarer des autres variables
Messages postés
78
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
25 novembre 2016

Petite astuce tout de meme, si vous cherchez à inverser l'état d'un CheckBox, comme ceci:



If CheckBox1.Value = 1 Then
   CheckBox1.Value = 0
Else
   CheckBox1.Value = 1
End If

Utiliser celà:

CheckBox1.CheckState = 1 - CheckBox1.CheckState

On économise quand même 4 lignes de code

Joyeux Noel

DOVAX