Parent de UserControl

Résolu
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007 - 30 août 2006 à 13:07
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007 - 30 août 2006 à 13:50
Bonjour,

    Désireux de créer un UserControl auto-dimensionné en largeur, tout comme une progress bar, j'ai rajouté un timer dans mon control que j'appelle toute les 100 ms afin de vérifier la taille du Parent de celui ci. Apparament tout marchais bien sauf que j'ai décidé d'intérgré celui ci dans un autre UserControl qui lui aussi prend la taille du Parent de la meme facon.

    Mais une fois le nouvel UserControl ajouté sur ma Form, et que je redimensionne celle ci mon UserControl enfant (le premier) me génère l'erreur suivante :

    Run-time error '438' :

    Object doesn't support this property or method.

Et le code de redimensionnement de l'UserControl est le suivant :

    Private Sub tmrUserControl_Timer()
    Dim oParentObject as Object

       Set oParentObject = UserControl.Parent
       UserControl.Width = oParentObject.Width
    End Sub

Le parent ... logiquement je n'ai pas encore verifier, est mon autre UserControl ... et le parent de cet UserControl est lui une Form ...

    Quelqu'un saurais t'il pourquoi cela ce produit, et comment y remedier ?

    A savoir aussi si il n y'aurais pas plutot un Evenement me retournant le changement de taille du Parent ?

Merci d'avance.

5 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
30 août 2006 à 13:41
salut,
ton timer est déclenché trop tôt....
il y a des "moments" (évènements) ou les infos du parent ne sont pas accessibles

de plus si tu as géré le mode conception / execution, un usercontrol dans un autre est toujours en execution.
c'est donc le usercontrol parent qui doit renvoyer les actions à faire quand il est en conception
++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
3
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
30 août 2006 à 13:50
Bon hé bien tu avais surement raison :) j'ai mis un "On error resume next" et tout ce passe a merveille maintenant :D merci
3
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
30 août 2006 à 13:14
J'ai oublier de précisé que l'erreur ce situai sur  UserControl.Width = oParentObject.Width
0
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
30 août 2006 à 13:24
Dans mes vairable "Locals" j'ai bien mon oParentObject de créer avec toute les propriété du Parent de mon Control (dans le cas présent c'est bien le UserControl parent)

Cependant que je passe par la fenetre Immediate en fesans ?oParentObject.Name j'ai le meme message d'erreur alors que celui ci est bien défini.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
30 août 2006 à 13:48
Hum ok ... heu .... faudrais que je le déclenche quand mon timer ?

Pourtant j'ai :
?oParentObject is nothing
False
?IsNull(oParentObject)
False

Faut t'il que je gère cette possibilité avec une gestion d'erreur ?

Pour le problème d'execution/conception celui ci est régler (apparament ...)
0
Rejoignez-nous