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

form_load

3 réponses
Avatar
Lionel
bjr,

comment empêcher le chargement d'une frame (pour x raisons, les conditions
ne sont pas remplies pour une exploitation pertinente de la frame), qui va se
produire à la fin de lu form_load ?
je voudrais revenir à la fenêtre de lancement sans même afficher la fenêtre
demandée.

Merci

3 réponses

Avatar
Jean-marc
Lionel wrote:
bjr,

comment empêcher le chargement d'une frame (pour x raisons, les
conditions ne sont pas remplies pour une exploitation pertinente de
la frame), qui va se produire à la fin de lu form_load ?
je voudrais revenir à la fenêtre de lancement sans même afficher la
fenêtre demandée.



Hello,

Tu peux le faire de façon très naturelle dans l'évènement form_activate:

Private Sub Form_Activate()
Static staInit As Boolean
Dim bRet as Boolean

If Not staInit Then
staInit = True

' vérifie conditions ;
bRet = VeirifeConditions()

If Not bRet Then
' décharge la form
Unload Me
End If
End If

End Sub

En gros, la variable statique permet de ne faire le test de conditions que
une seule fois (lors de l'instanciation de la form).
Puis le unload me décharge la forme si les conditions ne sont pas remplies.

Note: il est interdit de faire unload me dans un form_load

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jean-marc
Jean-marc wrote:
Lionel wrote:
bjr,

comment empêcher le chargement d'une frame (pour x raisons, les
conditions ne sont pas remplies pour une exploitation pertinente de
la frame), qui va se produire à la fin de lu form_load ?
je voudrais revenir à la fenêtre de lancement sans même afficher la
fenêtre demandée.





petit supplément : j'ai donné une réponse "technique", qui fonctionne.

Bien entendu, il est totalement déconseillé de faire ça, ça traduit
une erreur de conception. Les conditions qui font que la seconde form
ne va pas être exploitable doivent évidemment être testées dans la
forme appelante, pour ne pas faire de chargement du tout.

Exemple:
Form1 permet de saisir par exemple un numéro de référence, puis
un bouton de commande permet de chager Form2 qui va par exemple
permettre de retrouver les données pour cette référence.
Form2 n'a de sens que si la saisie du numéro de référence est
valide.
Il est clair que c'est lors de la tentative d'ouverture de Form2
(dans l'évènement command_click de le form1) que l'on doit tester
la validité de la saisie, et surement pas dans le load ou
l'activate de Form2.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
LE TROLL
Bonjour,

Je ne suis pas certain d'avoir compris ???

Dans form appelante
Load form_sans_frame
If condition then
form_sans_frame.frameX.visibleúlse
form_sans_frame Show
-------------
- C'est quoi la fenêtre ???
- C'est quoi la fenêtre demandée, sur
l'appelante ou l'appelée ???


--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Lionel" a
écrit dans le message de news:

| bjr,
|
| comment empêcher le chargement d'une frame (pour
x raisons, les conditions
| ne sont pas remplies pour une exploitation
pertinente de la frame), qui va se
| produire à la fin de lu form_load ?
| je voudrais revenir à la fenêtre de lancement
sans même afficher la fenêtre
| demandée.
|
| Merci