Parent de UserControl

Résolu
Signaler
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007
-
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007
-
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

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
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
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007

Bon hé bien tu avais surement raison :) j'ai mis un "On error resume next" et tout ce passe a merveille maintenant :D merci
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007

J'ai oublier de précisé que l'erreur ce situai sur  UserControl.Width = oParentObject.Width
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007

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.
Messages postés
101
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
1 novembre 2007

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 ...)