Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement
qu'en mettant enable=false ?
Le problème est que ça n'est pas très lisible lorsque enable=false.
Après il faut jouer avec les back color mais àa me semble un peu lourd...
Cela peu s'expliquer, si par exemple, dans le chargement du formulaire tu affectes une valeur à la propriété 'Value' (qui est la propriété par défaut) du CheckBox. Cela déclenchera, l'événement 'Click' :
Private Sub Check1_Click() ' Lors du Load le contrôle n'est pas visible, on sort If Check1.Visible = False Then Exit Sub If Check1.Value = 1 Then MsgBox "..." End If End Sub
Private Sub Form_Load() ' Génère l'événement Click Check1.Value = 1 End Sub
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Je ne pense pas qu'il y ait de solution idéale. Dès qu'on veut s'éloigner des standards de l'interface avec les composants de base, on finit alourdir les choses, et par définition on ne respecte plus ces standards.
Pour ce cas une solution relativement simple consiste à avoir un CheckBox sans 'Caption', et de positionner un contrôle Label à côté, ainsi, seul la case sera affectée par Enabled = False, pas le texte.
--
Cordialement,
Jacques.
Bonjour jerome,
jerome a écrit :
Bonjour,
J'ai une CheckBox sur lequel il y a un evenement
Private Sub chkBox_Click()
If chkBox = 1 Then
msgbox "...'
End If
End Sub
Le problème est que cet evenement se declenche au chargement du formulaire.
Comme si le cycle du chkBox_Click() était appelé.
Cela peu s'expliquer, si par exemple, dans le chargement du formulaire
tu affectes une valeur à la propriété 'Value' (qui est la propriété par
défaut) du CheckBox. Cela déclenchera, l'événement 'Click' :
Private Sub Check1_Click()
' Lors du Load le contrôle n'est pas visible, on sort
If Check1.Visible = False Then Exit Sub
If Check1.Value = 1 Then
MsgBox "..."
End If
End Sub
Private Sub Form_Load()
' Génère l'événement Click
Check1.Value = 1
End Sub
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement
qu'en mettant enableúlse ?
Le problème est que ça n'est pas très lisible lorsque enableúlse.
Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Je ne pense pas qu'il y ait de solution idéale. Dès qu'on veut
s'éloigner des standards de l'interface avec les composants de base, on
finit alourdir les choses, et par définition on ne respecte plus ces
standards.
Pour ce cas une solution relativement simple consiste à avoir un
CheckBox sans 'Caption', et de positionner un contrôle Label à côté,
ainsi, seul la case sera affectée par Enabled = False, pas le texte.
Cela peu s'expliquer, si par exemple, dans le chargement du formulaire tu affectes une valeur à la propriété 'Value' (qui est la propriété par défaut) du CheckBox. Cela déclenchera, l'événement 'Click' :
Private Sub Check1_Click() ' Lors du Load le contrôle n'est pas visible, on sort If Check1.Visible = False Then Exit Sub If Check1.Value = 1 Then MsgBox "..." End If End Sub
Private Sub Form_Load() ' Génère l'événement Click Check1.Value = 1 End Sub
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Je ne pense pas qu'il y ait de solution idéale. Dès qu'on veut s'éloigner des standards de l'interface avec les composants de base, on finit alourdir les choses, et par définition on ne respecte plus ces standards.
Pour ce cas une solution relativement simple consiste à avoir un CheckBox sans 'Caption', et de positionner un contrôle Label à côté, ainsi, seul la case sera affectée par Enabled = False, pas le texte.
--
Cordialement,
Jacques.
Jacques93
Jacques93 a écrit :
[...]
Private Sub Check1_Click() ' Lors du Load le contrôle n'est pas visible, on sort If Check1.Visible = False Then Exit Sub If Check1.Value = 1 Then MsgBox "..." End If End Sub
Private Sub Form_Load() ' Génère l'événement Click Check1.Value = 1 End Sub
J'oubliai, si tu modifies la propriété Value du CheckBox ailleurs dans le code, cela aura le même effet, cad déclenchement de l'événement Click. Et dans ce cas le test sur Visible ne servira à rien. Tu peux dans ce cas utiliser une variable booléenne pour ne pas exécuter le code l'événement Click.
--
Cordialement,
Jacques.
Jacques93 a écrit :
[...]
Private Sub Check1_Click()
' Lors du Load le contrôle n'est pas visible, on sort
If Check1.Visible = False Then Exit Sub
If Check1.Value = 1 Then
MsgBox "..."
End If
End Sub
Private Sub Form_Load()
' Génère l'événement Click
Check1.Value = 1
End Sub
J'oubliai, si tu modifies la propriété Value du CheckBox ailleurs dans
le code, cela aura le même effet, cad déclenchement de l'événement
Click. Et dans ce cas le test sur Visible ne servira à rien. Tu peux
dans ce cas utiliser une variable booléenne pour ne pas exécuter le code
l'événement Click.
Private Sub Check1_Click() ' Lors du Load le contrôle n'est pas visible, on sort If Check1.Visible = False Then Exit Sub If Check1.Value = 1 Then MsgBox "..." End If End Sub
Private Sub Form_Load() ' Génère l'événement Click Check1.Value = 1 End Sub
J'oubliai, si tu modifies la propriété Value du CheckBox ailleurs dans le code, cela aura le même effet, cad déclenchement de l'événement Click. Et dans ce cas le test sur Visible ne servira à rien. Tu peux dans ce cas utiliser une variable booléenne pour ne pas exécuter le code l'événement Click.
--
Cordialement,
Jacques.
jerome
Merci bien.
Je vais essayer comme ça. Mon formulaire est déjà chargé lorque la CheckBox est alimentée. Donc le test sur le load n'est pas pertinent.
Je vais mettre une variable booleenne pour le test. Ou un LostFocus
"Jacques93" wrote in message news:
Jacques93 a écrit : > [...] > Private Sub Check1_Click() > ' Lors du Load le contrôle n'est pas visible, on sort > If Check1.Visible = False Then Exit Sub > If Check1.Value = 1 Then > MsgBox "..." > End If > End Sub > > Private Sub Form_Load() > ' Génère l'événement Click > Check1.Value = 1 > End Sub >
J'oubliai, si tu modifies la propriété Value du CheckBox ailleurs dans le code, cela aura le même effet, cad déclenchement de l'événement Click. Et dans ce cas le test sur Visible ne servira à rien. Tu peux dans ce cas utiliser une variable booléenne pour ne pas exécuter le code l'événement Click.
--
Cordialement,
Jacques.
Merci bien.
Je vais essayer comme ça.
Mon formulaire est déjà chargé lorque la CheckBox est alimentée.
Donc le test sur le load n'est pas pertinent.
Je vais mettre une variable booleenne pour le test.
Ou un LostFocus
"Jacques93" <jacques@Nospam> wrote in message
news:eD7AEmW1KHA.5736@TK2MSFTNGP02.phx.gbl...
Jacques93 a écrit :
>
[...]
> Private Sub Check1_Click()
> ' Lors du Load le contrôle n'est pas visible, on sort
> If Check1.Visible = False Then Exit Sub
> If Check1.Value = 1 Then
> MsgBox "..."
> End If
> End Sub
>
> Private Sub Form_Load()
> ' Génère l'événement Click
> Check1.Value = 1
> End Sub
>
J'oubliai, si tu modifies la propriété Value du CheckBox ailleurs dans
le code, cela aura le même effet, cad déclenchement de l'événement
Click. Et dans ce cas le test sur Visible ne servira à rien. Tu peux
dans ce cas utiliser une variable booléenne pour ne pas exécuter le code
l'événement Click.
Je vais essayer comme ça. Mon formulaire est déjà chargé lorque la CheckBox est alimentée. Donc le test sur le load n'est pas pertinent.
Je vais mettre une variable booleenne pour le test. Ou un LostFocus
"Jacques93" wrote in message news:
Jacques93 a écrit : > [...] > Private Sub Check1_Click() > ' Lors du Load le contrôle n'est pas visible, on sort > If Check1.Visible = False Then Exit Sub > If Check1.Value = 1 Then > MsgBox "..." > End If > End Sub > > Private Sub Form_Load() > ' Génère l'événement Click > Check1.Value = 1 > End Sub >
J'oubliai, si tu modifies la propriété Value du CheckBox ailleurs dans le code, cela aura le même effet, cad déclenchement de l'événement Click. Et dans ce cas le test sur Visible ne servira à rien. Tu peux dans ce cas utiliser une variable booléenne pour ne pas exécuter le code l'événement Click.
--
Cordialement,
Jacques.
at
jerome avait prétendu :
Bonjour,
J'ai une CheckBox sur lequel il y a un evenement
Private Sub chkBox_Click() If chkBox = 1 Then msgbox "...' End If End Sub
Le problème est que cet evenement se declenche au chargement du formulaire. Comme si le cycle du chkBox_Click() était appelé.
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Merci. Bonne journée
Pour compléter la réponse de Jacques, il y a l'évènement MouseDown
Private Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' ' code ' End Sub
qui contrairement à Check1_Click n'est pas appelé quand dans le code tu changes la valeur de check1. Si j'ai bien compris, c'est ça le problème.
A+
jerome avait prétendu :
Bonjour,
J'ai une CheckBox sur lequel il y a un evenement
Private Sub chkBox_Click()
If chkBox = 1 Then
msgbox "...'
End If
End Sub
Le problème est que cet evenement se declenche au chargement du formulaire.
Comme si le cycle du chkBox_Click() était appelé.
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement
qu'en mettant enableúlse ?
Le problème est que ça n'est pas très lisible lorsque enableúlse.
Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Merci.
Bonne journée
Pour compléter la réponse de Jacques, il y a l'évènement MouseDown
Private Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
'
' code
'
End Sub
qui contrairement à Check1_Click n'est pas appelé quand dans le code tu
changes la valeur de check1. Si j'ai bien compris, c'est ça le
problème.
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Merci. Bonne journée
Pour compléter la réponse de Jacques, il y a l'évènement MouseDown
Private Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' ' code ' End Sub
qui contrairement à Check1_Click n'est pas appelé quand dans le code tu changes la valeur de check1. Si j'ai bien compris, c'est ça le problème.
A+
LE TROLL
Bonjour par exemple
dim debut as boolean sub load_form debut = false ' OU tu donnes le focus à un check qui ne va pas afficher de message end sub
sub activate_form if debut = true then exit sub debut = true end sub
sub checkBox_click if debut = false then exit sub end sub
Une grande partie des objets à click réagissent au Load, ils font mieux, il suffit dans certain cas d'appeler un bojet sur une form fermée pour qu'elle se charge (ComboBox) par exemple, donc il faut prendre garde de tester l'activation (affichage), afin que les clicks ne lancent rien avant.
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Merci. Bonne journée
Bonjour par exemple
dim debut as boolean
sub load_form
debut = false
' OU tu donnes le focus à un check qui ne va pas afficher de message
end sub
sub activate_form
if debut = true then exit sub
debut = true
end sub
sub checkBox_click
if debut = false then exit sub
end sub
Une grande partie des objets à click réagissent au Load, ils font mieux, il
suffit dans certain cas d'appeler un bojet sur une form fermée pour qu'elle
se charge (ComboBox) par exemple, donc il faut prendre garde de tester
l'activation (affichage), afin que les clicks ne lancent rien avant.
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement
qu'en mettant enableúlse ?
Le problème est que ça n'est pas très lisible lorsque enableúlse.
Après il faut jouer avec les back color mais àa me semble un peu lourd...
dim debut as boolean sub load_form debut = false ' OU tu donnes le focus à un check qui ne va pas afficher de message end sub
sub activate_form if debut = true then exit sub debut = true end sub
sub checkBox_click if debut = false then exit sub end sub
Une grande partie des objets à click réagissent au Load, ils font mieux, il suffit dans certain cas d'appeler un bojet sur une form fermée pour qu'elle se charge (ComboBox) par exemple, donc il faut prendre garde de tester l'activation (affichage), afin que les clicks ne lancent rien avant.
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Merci. Bonne journée
Driss HANIB
Bonjour
Pour ma part aux deux questions voici comment jke fais 1. Evenement Load
je fais comme LE TROLL je crée une variable initialisation que je mets à vrai au début de Form_Load
Puis dans l'évènement chkBox_Click() je mets
if not initialisation thne* ' mon action est ici end if
2. pour rendre non modifiable un checkBox dans utiliser Enabled = true, en fait je mets le checkBox dans un frame, avce border=0 (pas de bordure)
et je fais Frame1.enabledúlse
Ainsi tous les controles contenus dasn ce Frame, deviennent inaccessibles mais restent bien de la couleur iniotiale.
Driss "Jacques93" a écrit dans le message de news: OH$
Bonjour jerome, jerome a écrit :
Bonjour,
J'ai une CheckBox sur lequel il y a un evenement
Private Sub chkBox_Click() If chkBox = 1 Then msgbox "...' End If End Sub
Le problème est que cet evenement se declenche au chargement du formulaire. Comme si le cycle du chkBox_Click() était appelé.
Cela peu s'expliquer, si par exemple, dans le chargement du formulaire tu affectes une valeur à la propriété 'Value' (qui est la propriété par défaut) du CheckBox. Cela déclenchera, l'événement 'Click' :
Private Sub Check1_Click() ' Lors du Load le contrôle n'est pas visible, on sort If Check1.Visible = False Then Exit Sub If Check1.Value = 1 Then MsgBox "..." End If End Sub
Private Sub Form_Load() ' Génère l'événement Click Check1.Value = 1 End Sub
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Je ne pense pas qu'il y ait de solution idéale. Dès qu'on veut s'éloigner des standards de l'interface avec les composants de base, on finit alourdir les choses, et par définition on ne respecte plus ces standards.
Pour ce cas une solution relativement simple consiste à avoir un CheckBox sans 'Caption', et de positionner un contrôle Label à côté, ainsi, seul la case sera affectée par Enabled = False, pas le texte.
--
Cordialement,
Jacques.
Bonjour
Pour ma part aux deux questions voici comment jke fais
1. Evenement Load
je fais comme LE TROLL je crée une variable initialisation que je mets à
vrai au début de Form_Load
Puis dans l'évènement chkBox_Click()
je mets
if not initialisation thne*
' mon action est ici
end if
2. pour rendre non modifiable un checkBox dans utiliser Enabled = true, en
fait je mets le checkBox dans un frame, avce border=0 (pas de bordure)
et je fais Frame1.enabledúlse
Ainsi tous les controles contenus dasn ce Frame, deviennent inaccessibles
mais restent bien de la couleur iniotiale.
Driss
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
OH$XchW1KHA.2028@TK2MSFTNGP05.phx.gbl...
Bonjour jerome,
jerome a écrit :
Bonjour,
J'ai une CheckBox sur lequel il y a un evenement
Private Sub chkBox_Click()
If chkBox = 1 Then
msgbox "...'
End If
End Sub
Le problème est que cet evenement se declenche au chargement du
formulaire.
Comme si le cycle du chkBox_Click() était appelé.
Cela peu s'expliquer, si par exemple, dans le chargement du formulaire tu
affectes une valeur à la propriété 'Value' (qui est la propriété par
défaut) du CheckBox. Cela déclenchera, l'événement 'Click' :
Private Sub Check1_Click()
' Lors du Load le contrôle n'est pas visible, on sort
If Check1.Visible = False Then Exit Sub
If Check1.Value = 1 Then
MsgBox "..."
End If
End Sub
Private Sub Form_Load()
' Génère l'événement Click
Check1.Value = 1
End Sub
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement
qu'en mettant enableúlse ?
Le problème est que ça n'est pas très lisible lorsque enableúlse.
Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Je ne pense pas qu'il y ait de solution idéale. Dès qu'on veut s'éloigner
des standards de l'interface avec les composants de base, on finit
alourdir les choses, et par définition on ne respecte plus ces standards.
Pour ce cas une solution relativement simple consiste à avoir un CheckBox
sans 'Caption', et de positionner un contrôle Label à côté, ainsi, seul la
case sera affectée par Enabled = False, pas le texte.
Cela peu s'expliquer, si par exemple, dans le chargement du formulaire tu affectes une valeur à la propriété 'Value' (qui est la propriété par défaut) du CheckBox. Cela déclenchera, l'événement 'Click' :
Private Sub Check1_Click() ' Lors du Load le contrôle n'est pas visible, on sort If Check1.Visible = False Then Exit Sub If Check1.Value = 1 Then MsgBox "..." End If End Sub
Private Sub Form_Load() ' Génère l'événement Click Check1.Value = 1 End Sub
Et existe-t-il un moyen de rendre une CheckBox non saisissable autrement qu'en mettant enableúlse ? Le problème est que ça n'est pas très lisible lorsque enableúlse. Après il faut jouer avec les back color mais àa me semble un peu lourd...
Quelque chose du style locked=true
Je ne pense pas qu'il y ait de solution idéale. Dès qu'on veut s'éloigner des standards de l'interface avec les composants de base, on finit alourdir les choses, et par définition on ne respecte plus ces standards.
Pour ce cas une solution relativement simple consiste à avoir un CheckBox sans 'Caption', et de positionner un contrôle Label à côté, ainsi, seul la case sera affectée par Enabled = False, pas le texte.