OVH Cloud OVH Cloud

désactiver les champs d'un formulaire

6 réponses
Avatar
John
Bonjour,

Existe-t-il un moyen de désactiver (ou réactiver) d'un coup tout les champs
d'un formulaire (sans désactiver le formulaire lui même) ?

Merci

6 réponses

Avatar
Clive Lumb
"John" a écrit dans le message de
news:
Bonjour,

Existe-t-il un moyen de désactiver (ou réactiver) d'un coup tout les


champs
d'un formulaire (sans désactiver le formulaire lui même) ?



Essayer ceci

Private Sub Controls_ON_OFF(bCtrlState As Boolean)
Dim MyControl As Control
For Each MyControl In Me.Controls
If TypeOf MyControl Is TextBox Or TypeOf MyControl Is ComboBox Or TypeOf
MyControl Is ListBox Then
MyControl.Enabled = bCtrlState
End If

Next
End Sub


Ajouter des types de contrôle dans le IF selon besoin.
Malheureusement TypeOf ne semble pas marcher avec Select Case.
On pourras ajouter un array en Static qui est utilisé pour enregistrer
l'état de chaque contrôle avant de les déasactiver. En les réactivant on les
remet à leur état initial, comme cela des contrôles qui étaient déjà
désactivés ne seront pas activés.
Avatar
Clive Lumb
Correctif.
Ajouter "ByVal" dans l'appel.

Private Sub Controls_ON_OFF(ByVal bCtrlState As Boolean)


Sorry
Clive
Avatar
John
Merci.

Mais sans faire de boucle sur les controles rien qui d'un coup ne
désactiverait.

Merci quand même


"Clive Lumb" wrote in message
news:%
Correctif.
Ajouter "ByVal" dans l'appel.

Private Sub Controls_ON_OFF(ByVal bCtrlState As Boolean)


Sorry
Clive




Avatar
Clive Lumb
"John" a écrit dans le message de
news:%
Merci.

Mais sans faire de boucle sur les controles rien qui d'un coup ne
désactiverait.

Merci quand même




La boucle n'est pas trop consommateur de temps de calcul.

Il y a une autre solution, c'est de mettre tous les contrôles que l'on
souhaite désactiver dans un frame, puis utiliser frame1.enabled.
Cela donne le résultat souhaité, mais ne grise pas les contrôles.

Clive
Avatar
X
Bonjour,

En VB il y a aussi des solutions, ça peut être un peu plus long

dim x as boulean
sub activation()
x = Not x
objet1.enabled=x
objet2...
end sub

--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"John" a écrit dans le message de news:

Bonjour,

Existe-t-il un moyen de désactiver (ou réactiver) d'un coup tout les
champs
d'un formulaire (sans désactiver le formulaire lui même) ?

Merci




Avatar
driss hanib
Un méthode simple est de mettre tous tes champs dans un frame sans bordure.
Et tu peux ainsi mettre la propriété enabled de ton frame à false et aucun
champ ne sera accessible sans avoir le grisé lors qu'enabled est à faux pour
chaque champ.
Si tu veux qu'un champ , situé entre les autres reste accessible (exemple
un combo qui permettra de changer toutes les valeurs en focntion de la ligne
choisie) tu ne mets pas ce champ à l'intérieur de ce frame , mais "par
dessus".

cela marche très bien et est très rapide et surtout il n'y a pas ce grisés,
parfois pénible.

Driss


"John" a écrit dans le message de news:

Bonjour,

Existe-t-il un moyen de désactiver (ou réactiver) d'un coup tout les
champs
d'un formulaire (sans désactiver le formulaire lui même) ?

Merci