Savoir si un formulaire est déjà ouvert! [Résolu]

js8bleu 576 Messages postés samedi 14 octobre 2006Date d'inscription 27 janvier 2014 Dernière intervention - 14 janv. 2011 à 17:21 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 16 janv. 2011 à 15:03
Bonjour,

en cliquant sur le bouton "Destockage" de Form1, comment tester/savoir si Form2 est pas déjà ouvert.

NB : Les deux formulaires sont dans la même application.

Merci d'avance.

Cordialement.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 14 janv. 2011 à 20:19
3
Merci
salut,

l0r3nz1 -> la question est en VB6

js8bleu -> toutes les forms "chargées" sont dans la collection 'forms'. si elle n'y est pas, elle n'est pas chargée
http://www.codyx.org/snippet_form-chargee-form-visible_210.aspx

++
[hr]

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de PCPT
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 14 janv. 2011 à 18:28
0
Merci
Salut,
1) as tu parcourru les membres de la classe form:
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.form_members.aspx

1-bis)tu pourrais utiliser la propriété "windowstate" d'une façon ou l'autre. Je crois que cette propriété indique seulement l'état plein écran ou mini de la fenetre mais si cela génère une erreur, je pense, et tu sais que ta fenetre est fermée.

2) t'es t'il possible de créer une classe contenant tes formulaires, exemple:

class monForm1
'avec comme constructeur
monForm1(Form1 as Form, sousFormulaire as Form){...}
'qui te permettrait de mettre les deux formulaires en relation

et class monForm2
'avec comme constructeur
monForm2(Form2 as Form, formulaireMaitre as Form)

3) sale méthode mais au cas ou tu tente d'améliorer un programme dans lequel c'est le bordel et que tu veux éviter d'ajouter des bugs, tu créés un module spécialement pour des variables et dans ce module tu mets une variable, booleen, tableau de string, ... ce que tu veux qui pourra t'indiquer les formulaires ouverts
Commenter la réponse de l0r3nz1
js8bleu 576 Messages postés samedi 14 octobre 2006Date d'inscription 27 janvier 2014 Dernière intervention - 14 janv. 2011 à 23:46
0
Merci
Bonjour l0r3nz1 et PCPT et Merci pour votre intérêt. Le code est effectivement pour du vb 6.0 . Ton code marche parfaitement PCPT . Merci beaucoup.

Cordialement.
Commenter la réponse de js8bleu
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 15 janv. 2011 à 11:50
0
Merci
En effet, "Forum->visual Basic 6" ça veut dire qu'on est en VB6. alors soit je suis trop nul soit c'est encore une conspiration de la cia contre moi.

la proposition 3 concernant le module contenant des variables reste valable, c'est pas super question développement mais cela peut faire gagner au moins 0,0000000000001 seconde ;)

j'aurais proposé sinon d'utiliser la gestion d'erreur, qui donne un truc du genre:
Function FormIsLoaded(oForm As Form) As Boolean
dim rep as Boolean
rep = false
on error goto error_noformload
'renvoi une erreur et sort ou affecte rep a true
rep = (oForm .visible) or (not( oForm .visible))
error_noformload:
FormIsLoaded= rep
End Function

rep = (oForm .visible) or (not( oForm .visible)) est peut être a revoir mais l'idée c'est d'éviter de boucler

@+
Commenter la réponse de l0r3nz1
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 15 janv. 2011 à 12:01
0
Merci
l0r3nz1 -> l'accès à toute propriété d'une form "non chargée" va la charger. c'est pour çà qu'on boucle uniquement sur la collection de celles chargées, qui contient donc en général maximum quoi... 2 voire 3 forms simultanément?...

ton code ne fera pas d'erreur, mais la visibilité ne nous apporte rien sur l'état de chargement, c'est 2 choses bien différentes.

en plus tu testes true or false, ou false or true. donc true dans les 2 cas

++
Commenter la réponse de PCPT
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 16 janv. 2011 à 12:20
0
Merci
merci pour le conseil.

désolé pour l'erreur, il fallait:
rep = (oForm .visible) and (not( oForm .visible))
Commenter la réponse de l0r3nz1
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 16 janv. 2011 à 12:24
0
Merci
mais non! il ne fallait rien du tout, soit cela faisait une erreur et on la gérait, ce qui n'est pas le cas. alors j'ai juste tout faux...
parce que:
"l'accès à toute propriété d'une form "non chargée" va la charger."

erreur que je ne ferait plus, merci.
Commenter la réponse de l0r3nz1
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 16 janv. 2011 à 15:03
0
Merci
^^

pas de prob'
Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.