Unload sur paint, combobox, hscrollbar, vscrollbar, picture box...

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 036 fois - Téléchargée 29 fois

Contenu du snippet

J'avais besoin de réaliser un unload sur une ComboBox et voici l'erreur donnée par MSDN:

Dans certains cas, vous ne pouvez pas décharger une feuille ou un contrôle situé sur une feuille. Les causes de cette erreur et les solutions pour la corriger sont les suivantes :

Il y a une instruction Unload dans l'événement Paint correspondant à la feuille ou à un contrôle de la feuille possédant cet événement.
Supprimez l'instruction Unload de l'événement Paint.

Il y a une instruction Unload dans l'événement Change, Click ou DropDown d'un contrôle ComboBox.
Supprimez l'instruction Unload de l'événement.

Il y a une instruction Unload dans l'événement Scroll d'un contrôle HScrollBar ou VScrollBar.
Supprimez l'instruction Unload de l'événement.

Il y a une instruction Unload dans l'événement Resize d'un contrôle Data, Form, MDIForm ou PictureBox.
Supprimez l'instruction Unload de l'événement.

Il y a une instruction Unload dans l'événement Resize d'un contrôle MDIForm qui tente de décharger une feuille fille MDI.
Supprimez l'instruction Unload de l'événement.

Il y a une instruction Unload dans l'événement RePosition ou Validate d'un contrôle Data.
Supprimez l'instruction Unload de l'événement.

Il y a une instruction Unload dans l'événement ObjectMove d'un contrôle OLE Container.
Supprimez l'instruction Unload de l'événement.

Voici l'astuce que j'ai trouvé et qui marche:
Je place un timer sur ma Form. Je mets comme interval 1 et je mets Enabled=false

Source / Exemple :


Private Sub ComboBox_Click()
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Timer1.Enabled = False
'là je met le code
'........
End Sub

Conclusion :


Comme je n’avais rien trouvé pour répondre à mon problème, et que de nombreux posts sont sans réponse, je mets ce bout de code pour ceux qui en auraient besoin.

Vos commentaires sont les bienvenus.

JUJECO

Ils ne savaient pas que c'était impossible alors ils l'ont fait.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
13
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
3 novembre 2010

Un grand merci 6 ans après ^^
Ca m'a bien aidé en tout cas !
Messages postés
102
Date d'inscription
vendredi 29 mars 2002
Statut
Membre
Dernière intervention
14 février 2013

Ca marche très bien sous vb6 :

Initialisation de timer1 :
Timer1.Enabled=false
Timer1.Interval=1
le reste est sans importance ...

Au lieu d'écrire :
Private Sub Combo1_Click()
Unload Text1(1)
End

il faut écrire
Private Sub Combo1_Click()
Timer1.enabled=true
End

Private Sub Timer1_Timer()
Timer1.enabled=false
Unload Text1(1)
end sub
Messages postés
373
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013

marche pas (sous vb6)
Messages postés
466
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
20 avril 2007

J'ai compris ! ;)

Oui c'est clair que c'est bon savoir, c'est en même temps aberrant !
J'ai rien trouvé d'autre moi non plus... :(


@+
Celiphane
Messages postés
200
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
3 août 2004

Et en bouclant sur l'erreur, avec un Doevents, tant que c'est pas ok ?
Afficher les 6 commentaires

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.

Du même auteur (cs_jujeco)