freepopo
Messages postés9Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 7 août 2008
-
25 juil. 2008 à 11:46
freepopo
Messages postés9Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 7 août 2008
-
28 juil. 2008 à 17:01
Bonjour à vous,
Je programme en VB6.
Je voudrais savoir s'il est possible de bloquer tout un formulaire pour ne pas que l'utilisateur change des données par inadvertance.
Un bouton "Modifier" permetterait de débloquer ce formulaire pour changer des éléments.
Y a t'il un moyen de tout vérrouiller directement ? Par exemple dans tout mettre dans une frame et bloquer/débloquer les éléments de cette frame ?
cs_titicar
Messages postés181Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention19 août 2012 25 juil. 2008 à 18:43
Salut,
Il y a 2 solutions simples :
La première : Tous tes contrôles sont placés dans une frame... à l'exception de ton bouton 'modifier'.
Dans ce cas là, y a pas plus simple : désactive simplement ta frame (myFrame.Enabled = True).
Ainsi tous les contrôles contenus dans cette frame seront désactivés. Mais d'un point de vue visuel, tu ne le remarqueras pas car les contrôles dans cette frame ne seront pas grisés.
Deuxième solution :
Tous tes contrôles ne sont pas dans une frame.
Utiliser une boucle For Each myObject In myForm : Très pratique, la boucle désactivera TOUS les différents contrôles du form.
Faudra juste penser à réactiver ton bouton 'Modifier' à la fin de la procédure, et activer à nouveau les contrôles (ou objets) quand on appuie sur ce bouton.
Exemple :
Private Sub Form_Load() '# Par défaut, on désactive les controles de ce form:
'# Dans l'exemple, le bouton 'modifier' s'apelle CmdModify
myObjects_Enable False, Me, Me.CmdModify
End Sub
Private Sub CmdModify_Click() myObjects_Enable True, Me, CmdModify
End Sub
Private Sub myObjects_Enable(ByVal Bool As Boolean, myForm As Form, myButtonModified_Name As CommandButton) '# Permet d'activer ou de désactiver tous les objets du form, sauf le bouton myButtonModified_Name
'# Bool active ou non les différents objets
'# myForm représente le form contenant les objets
'# myButtonModified_Name représente le bouton qui doit rester activé !
Dim myObject As Object
On Local Error Resume Next 'Au cas où...
'# Désactive TOUS les objets du form 'myForm':
For Each myObject In myForm
myObject.Enabled = Bool
Next
'# Réactive le bouton 'Modifier':
myButtonModified_Name.Enabled = True
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 28 juil. 2008 à 14:01
freepopo, "Enfin quelqu'un qui n'a pas de signature." n'est ce pas une signature??
Il y a (4.5 \ 1.5) sortes de gens, ceux qui comprennent le vb et les autres ,je fais partie des autres/FONT>
freepopo
Messages postés9Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention 7 août 2008 28 juil. 2008 à 15:49
Si, c'est justement ironique ;)
Sinon la méthode décrite juste au dessus ne fonctionne pas. Tous les éléments du form sont bien désactivés mais sa m'affiche un message d'erreur de code 438. Je pense qu'il y a un objet dans le form qui ne peut pas être mis a enabled comme sa, qu'en pensez-vous ? Voici le code :
Dim myObject As Object
'# Désactive TOUS les objets du form 'myForm':
For Each myObject In nouvProfil2
myObject.Enabled = True
Next