Comment détécter automatiquement le redimentionnement d'un objet parent d'un use

Signaler
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011
-
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011
-
Bonjour, à tous, je crois que le sujet éclaire déjà bien sur la question...

en fait j'ai un usercontrol avec lequel j'aimerais intercepté l'evenement de redimentionnement du control parent sans utilisé de truc brouillon comme un timer...

Je ne sait pas bien comment faire, j'ai essayer pas mal de choses mais sans succés

Guillaume
Cherche codeur vb6 sur Strasbourg

7 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
l'evenement Resize de ta Form ne sert-il pas précisément à cela ?

Places un ListBox "List1" dans ton UserControl, et ajoute :


Option Explicit

Private WithEvents Form As Form

Private Sub Form_Resize()
    List1.AddItem "Resize de la form à " & Now
End Sub

Private Sub UserControl_InitProperties()
    AttachParentForm
End Sub

Private Sub AttachParentForm()
Dim oParent As Object
    If Ambient.UserMode Then
        Set oParent = UserControl.Extender.Parent
        Do Until TypeOf oParent Is Form
            Set oParent = oParent.Parent
        Loop
        Set Form = oParent
    End If
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    AttachParentForm
End Sub




Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011

Genial, j'allais essayer et là : plantage de vb : il me prend à moitié mon usercontrol comme étant un "j'en sait rien en fait" du coup pas moyen de rajouter un truc genre listbox... mais bon ce n'est pas le plus grave quel bug a la con, pourtant il apparait bien comme étant un "contrôle utilisateur" dans l'abre de projet... bizare

en essayant de cliquer sur un control dans la barre d'outils "control" étant grisé vb me dit : "les contrôles clients OLE ne sont pas autorisés dans les objets usercontrol, userdocument, ou property page....

Guillaume
Cherche codeur vb6 sur Strasbourg
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011

OK, je suis un couillon, j'ai réactivé le "CanGetFocus", je sort...

Et j'essaie ta solution Renfield...


Guillaume
Cherche codeur vb6 sur Strasbourg
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011

Effectivement ça fonctionne mais malgré tout cela ne résout pas completement mon problème, en effet mon controle compilé peut se trouver dans n'importe quel container et c'est de se dernier qu'il doit détécter le redimentionnement, or, j'ai pus voir que tout les conteneur ne propose pas d'évenement "resize", aurais tu une solution, genre du subclassing ou autre pour palier à ce problème ?

Bon ce n'est pas d'une éxtreme importance mais c'est juste pour prevoir tout les cas de figures...

Au passage Renfield, merci, comme toujours, tu est présent pour ceux qui en ont besoins, et bravo pour tes sources qui doivent motivié et faire progresser pas mal de monde...

Guillaume
Cherche codeur vb6 sur Strasbourg
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011

En tout cas grâce à ta version, j'économise 1 à 5% du processeur... Merci

Guillaume
Cherche codeur vb6 sur Strasbourg
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Bête question.

Pour quelle raison souhaites tu être rencardé sur le redimensionnement du container ?



Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011

Bien en fait c'est tout simple, j'affiche une vidéo dans mon usercontrol que je veut redimentionner avec son control parent direct...


Guillaume
Cherche codeur vb6 sur Strasbourg