CheckBox, Evenement Click souris et Egalité

Trepanator Messages postés 16 Date d'inscription lundi 23 août 2004 Statut Membre Dernière intervention 23 décembre 2008 - 23 déc. 2008 à 16:06
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016 - 23 déc. 2008 à 20:12
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

benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
23 déc. 2008 à 16:17
Pourquoi n'utilises tu pas des RadioButtons qui sont bien mieu étudié pour cet usage ???
Joyeux noel.

DOVAX
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
23 déc. 2008 à 16:40
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
Trepanator Messages postés 16 Date d'inscription lundi 23 août 2004 Statut Membre Dernière intervention 23 décembre 2008
23 déc. 2008 à 16:43
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
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
23 déc. 2008 à 16:44
Ben tu souhaites faire quoi plus exactement ?

DOVAX

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Trepanator Messages postés 16 Date d'inscription lundi 23 août 2004 Statut Membre Dernière intervention 23 décembre 2008
23 déc. 2008 à 17:14
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
MOUSSAOUIAAZIZ Messages postés 48 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 9 novembre 2009
23 déc. 2008 à 18:46
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
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
23 déc. 2008 à 20:12
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
Rejoignez-nous