DoEvents() et Visual Studuio 2008 [Résolu]

Signaler
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
Salut à tous,

venant d'acquérir VS 2008, j'ai voulu reprendre une ancienne appli développée sous VS 2005 et je me suis rendu compte que la fonction DoEvents() de l'objet Application n'existe plus... Malgré quelques recherches, je n'ai pas trouvé son équivalent.

Est-ce que l'un d'entre vous pourrait m'aiguiller sur le sujet?

Merci.

<hr />
@+  

14 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
21
As-tu de référencé dans ton projet l'assembly System.Windows.Forms ?
Si non, clic droit sur ton projet -> ajouter référence -> onglet .net  et sélectionner System.Windows.Forms
Si oui essai ceci System.Windows.Forms.Application.DoEvents()

++
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
21
Bonjour,
La méthode DoEvents de la classe Application existe toujours !
Application.DoEvents()

++
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
C'est vrai que je n'ai pas de message d'erreur à la compilation et mon projet se génère correctement, mais à l'exécution, ça plante sur le Application.DoEvents() avec les message suivant :

"Le membre public 'DoEvents' du type 'ApplicationClass' est introuvable."

Il me manquerait quelquechose?

<hr />
@+  
Messages postés
14738
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
148
Bonjour,

Tu as mis Option Strict à On ?

http://nhen0039.chez-alice.fr/index.php
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
NHenry -> Non et jamais d'ailleurs, je pense qu'en .net ça n'est utile de le préciser.

Willi -> Oui l'assembly est bien référencée.

Bizarre cette erreur...

<hr />
@+  
Messages postés
14738
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
148
Bonjour,

Définit OptionStrict à On, il te signalera l'erreur si c'e'st un membre inconnu.
En .NET, toujours vérifier que Option Explicit et Option Strict sont à On, c'est une question de logique de developpement. (cela peut être différent sur un seul module de l'appli si besoin, mais cela doit rester une exception).

http://nhen0039.chez-alice.fr/index.php
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
En effet, je viens de vérifier, et par défaut OptionStrict est sur "personnalisé". Je viens de le modifier à On et je me retrouve avec quelques erreurs.

Je regarde ça de plus prés...

<hr />
@+  
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Avec ce paramétrage,  Application.DoEvents() me renvoie une erreur à la génération :

Option Strict On rejette toute liaison tardive

Help....

<hr />
@+  
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Aurais-tu redéfinis le nom Application ou DoEvents quelque part dans une classe ?
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
21
Le message de liaison tardive n'a pas de rapport avec Application.DoEvents().
Essai de nettoyer ta solution (menu générer -> Nettoyer la solution) et de la regénérer complètement avec l'option Strict Off.
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
[auteur/KRISTOFKODER/1121413.aspx
]Kritof_Koder -> non, je n'ai redéfini ni Application ni DoEvents()

Willi -> j'ai fait tout comme tu m'as dit, mais le résultat est le même

<hr />
@+  
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Il doit bien indiquer sur quel ligne se pose le pb de la liaison tardive ! Il est vrai que cela semble peu probable que ce soit la ligne avec un Applicaiton DoEvents !
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
J'ai reparcouru vos messages, et j'étais passsé à côté de ça : System.Windows.Forms.Application.DoEvents()

qui du coup fonctionne trés bien!!

Bizarre cependant  que Application.DoEvents() ne fonctionne pas puisque l'assembly System.Windows.Form a bien été ajoutée.

<hr />
@+  
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
21
Bonjour,
Si Application.DoEvents() ne fonctionnait pas soit je vois 2 possibilités:
1) Tu n'avais pas ajouter la directive "Imports System.Windows.Forms" en haut de ton code.
2) Ont peut supposer que tu as une classe/structure/module nommer Application alors il cherche une méthode DoEvents dans celle-ci et non dans la bonne classe.

Voila mes idées...
++