Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

missingmemberexception Pourquoi ?

6 réponses
Avatar
Jacquouille14
Bonjour,
Private Sub Coche(llz As Boolean)
For Each CheckBox In me.controls
If CheckBox.visible=True then
try 'pour surpasser l'erreur
checkbox.checked=llz
Catch
'rien a y mettre
End Try
End If
Next
End Sub
J'essaie de mettre ou enlever toutes les coches dans la form me.
A chaque fois je me prends une erreur missingmemberexception sauf
en utilisant try.
Il y a 21 checkbox sur la form et il me semble que la boucle
en cherche 30 ou 31 et n'affiche l'erreur qu'à ce moment là.
La procédure est appelée à partir de me.activated.
Le tout est en vb 2008.
En attendant vos réponses, je teste sans try en appelant d'ailleurs,
je compte exactement les itérations ...

--
Jacques dit Jacquouille

6 réponses

Avatar
Jacquouille14
Jacquouille14 a écrit :
Bonjour,
Private Sub Coche(llz As Boolean)
For Each CheckBox In me.controls
If CheckBox.visible=True then
try 'pour surpasser l'erreur
checkbox.checked=llz
Catch
'rien a y mettre
End Try
End If
Next
End Sub
J'essaie de mettre ou enlever toutes les coches dans la form me.
A chaque fois je me prends une erreur missingmemberexception sauf
en utilisant try.
Il y a 21 checkbox sur la form et il me semble que la boucle
en cherche 30 ou 31 et n'affiche l'erreur qu'à ce moment là.
La procédure est appelée à partir de me.activated.
Le tout est en vb 2008.
En attendant vos réponses, je teste sans try en appelant d'ailleurs,
je compte exactement les itérations ...



J'ai trouvé une partie de la réponse. Il y a 4 autres contrôles sur la
form qui sont des labels et la procédure tente de leur mettre un
checked. Il me faut être plus explicite dans la boucle for each.
Oui mais comment ?

--
Jacques dit Jacquouille
Avatar
Fred
Dans : news:482c452d$0$21056$,
Jacquouille14 disait :
Bonjour,



Bonjour,

For Each CheckBox In me.controls



Me.Controls ne contient pas nécessairement que des contrôles CheckBox.

For Each ctrl as Control in Me.Controls
If TypeOf ctrl is CheckBox Then
Dim chk as CheckBox = DirectCast(ctrl, CheckBox)
'etc ...
End If
Next

(À condition que les checkboxes soient enfants directs de Me)

--
Fred

Avatar
Jacquouille14
Fred a écrit :
Dans : news:482c452d$0$21056$,
Jacquouille14 disait :
Bonjour,



Bonjour,

For Each CheckBox In me.controls



Me.Controls ne contient pas nécessairement que des contrôles CheckBox.

For Each ctrl as Control in Me.Controls
If TypeOf ctrl is CheckBox Then
Dim chk as CheckBox = DirectCast(ctrl, CheckBox)
'etc ...
End If
Next

(À condition que les checkboxes soient enfants directs de Me)



Merci, je prends note.
les checkboxes sont enfants directs de Me et j'avais bien compris
que me.controls référencie tous les controles mais je pensais
que for each checkbox faisait le tri alors qu'il effectue un cast.
Bonne soirée.
--
Jacques dit Jacquouille
Avatar
Bill2
Jacquouille14 wrote:

Merci, je prends note.
les checkboxes sont enfants directs de Me et j'avais bien compris
que me.controls référencie tous les controles mais je pensais
que for each checkbox faisait le tri alors qu'il effectue un cast.
Bonne soirée.



le For Each, il prend un "nom" pour parcourir les controles.

Donc le mieux, ca aurait été un truc du style :
for ech Ctrl in me.controls

et là, tu travailles ensuite sur la variable Ctrl (ou le nom que tu veux !)
For Each CurrentControl in me.controls
for Each Truc in me.controls
etc ...

Pour résumer, à cet endroit du each, c'est un nom de variable, pas un type
:)


--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/
Avatar
Jacquouille14
Bill2 a écrit :
Jacquouille14 wrote:

Merci, je prends note.
les checkboxes sont enfants directs de Me et j'avais bien compris
que me.controls référencie tous les controles mais je pensais
que for each checkbox faisait le tri alors qu'il effectue un cast.
Bonne soirée.



le For Each, il prend un "nom" pour parcourir les controles.

Donc le mieux, ca aurait été un truc du style :
for ech Ctrl in me.controls

et là, tu travailles ensuite sur la variable Ctrl (ou le nom que tu veux !)
For Each CurrentControl in me.controls
for Each Truc in me.controls
etc ...

Pour résumer, à cet endroit du each, c'est un nom de variable, pas un type
:)




Merci, c'est fait de cette manière
For Each CBox In me.Controls
If typeof CBox is checkbox then
CBox.checked=llz' boolean pouvant etre true ou false
End If
Next

--
Jacques dit Jacquouille
Avatar
Bill2
Jacquouille14 wrote:




Merci, c'est fait de cette manière
For Each CBox In me.Controls
If typeof CBox is checkbox then
CBox.checked=llz' boolean pouvant etre true ou false
End If
Next



nickel :)
--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/