IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Accéder aux éléments d'un UserControl cloné


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut Accéder aux éléments d'un UserControl cloné
    Bonjour,

    Je réalise un logiciel avec une fonction multi-Document, et a chaque fois que l'on ajoute un onglet, UserControl1(qui à jéjà été créer dans le concepteur) est ajouté dans le Tab

    Mais lorsque je veux ajouter du Texte dans un textbox, je ne peut qu'accéder à UserControl mais aucun des éléménets n'existe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
     
            Me.DialogResult = System.Windows.Forms.DialogResult.OK
            Form1.TabControl2.Visible = True
            Dim I As Integer = 0
            Dim sg As StreamReader 'Créer une variable
            Dim gLine
     
            sg = New StreamReader("C:\Program Files\OrthoTest 2009\patient")
     
            gLine = sg.ReadLine()
            UserControl.TextBox1.Text = gLine ' ici, le code ne marche pas...comme si les éléments n' existaient pas
            sg.Close()
     
     
            I += 1
     
            Dim tabpage1 As New TabPage
     
     
            tabpage1.Text = "Nouveau Patient"
     
     
            tabpage1.Name = "TabPage" & I
     
     
     
            tabpage1.Controls.Add(New UserControl1)
     
            Form1.TabControl2.TabPages.Add(tabpage1)
     
     
     
            Me.Close()
     
        End Sub
    Merci d'avance


    PS: je ne pourrais répondre avant Dimanche ou Lundi soir

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    c'est loin d'etre très clair ton histoire

    mais si tu veux modifier des controles qui sont sur le usercontrol, ta fenetre n'en a aucune idée, donc c'est sur le usercontrol qu'il faut chercher

    deja au lieu de faire add(new usercontrol1)
    tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim u as new usercontrol1
    tappage.controls.add(u)
    u.textboxmachin.text =
    si tes controles du usercontrol ne sont toujours pas accessibles comme ca c'est que le usercontrol et la form ne sont pas dans le meme projet et que les controles ne sont pas public
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut
    non en faite le UserControl1 n'est pas créer grâce au code (userControl1.controls.add...) mais dans le concepteur de forme.

    il est donc ajouter à chaque nouveau Tab qui s'ouvre pour pouvoir ouvrir plusieur fois la même page. Mais impossible d'y accéder.

    Je suis ouvert au autre technique qui pourrait être proposée

  4. #4
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    Ce que tu fait extensie un nouveau UserControl qui par défaut ne contient aucun élément sauf si tu les ajoutes toi même dans le code, Ce que tu devrais comme sperot5 l'a dit c'est créer tes usercontrol a partir du code.
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut
    J'y ai pensé mais dans le userControl il y a environ 180 éléments car c'est un bilan donc cela me prendrais un temps fou car il faut aussi préciser leurs emplacements... n'y a t il aucune autre solution ? par exemple préciser que New UserControl1 contient tous les éléments de UserControl1?

  6. #6
    Membre chevronné Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Par défaut
    Citation Envoyé par xav2303 Voir le message
    J'y ai pensé mais dans le userControl il y a environ 180 éléments car c'est un bilan donc cela me prendrais un temps fou car il faut aussi préciser leurs emplacements... n'y a t il aucune autre solution ? par exemple préciser que New UserControl1 contient tous les éléments de UserControl1?

    Tu peux toujours tenter:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim UserControlClone as new UserControl1
        For Each item As Control In UserControl1.Controls
     
        UserControlClone.Controls.add(item)
        Next

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par xav2303 Voir le message
    non en faite le UserControl1 n'est pas créer grâce au code (userControl1.controls.add...) mais dans le concepteur de forme.

    tabpage1.Controls.Add(New UserControl1)



    et ca c'est quoi ???


    essai d'être clair !

    (partie censurée)



    est-ce que tu veux accéder aux controles d'un usercontrol posé sur le form ?
    est-ce que tu veux accéder aux controles d'un usercontrol instancié par le code ?
    est-ce que tu veux cloner un usercontrol pour que les controles dedans possèdent les meme valeurs ???
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    normalement y a rien à faire de spécial
    dans ton usercontrol tu pose un textbox nommé textbox1
    tu recompiles, tu le pose sur une fenetre, il s'appelle usercontrol1
    et dans le code tu peux faire me.usercontrol1.textbox1.text = ""

    Citation Envoyé par sperot51 Voir le message
    si tes controles du usercontrol ne sont toujours pas accessibles comme ca c'est que le usercontrol et la form ne sont pas dans le meme projet et que les controles ne sont pas public

    donc si tu as des projets différents il faut les mettres public tes controles
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut
    Le UserControl1 est crér dans le même projet mais pas lorsque je met : Me. il ne me met pas UserControl1 car je fais ça lorsque l'on clique sur le bouton OK d'un Dialog. Je ne sais pas pourquoi lorsque je met UserControl1. l'intellisense ne me met AUCUN des controls qui sont dans l' UserControl1... mais j'ai regardé, je ne peux accéder aux controls même dans les autre SUB.

    Il faut que je les rendent public ? comment ?

  10. #10
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    faut revoir les bases ...


    comment veux tu que l'intellisense te propose sur me, quelque chose qui n'est pas dessus au moment de la conception ???


    par contre si tu créé une variable tu peux accéder à tout dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim u as new monusercontrol
    ___.controls.add(u)
    u.Textbox1.text =

    et UserControl1 est un type, pas une instance, donc l'intellisense ne montrera que ca qui est shared
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut
    C'est bon grâce à ce code ça marche !

    Maintenant que c'est fini je te dis juste que j'ai 13 ans donc c'est un peu nomal que je ne soit que débutant...Mais je me débrouille bien quand même car je suis en train de créer un logiciel pour les Orthophonoste avec tout un bilan complet

    Merci encore

    Xavier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/05/2007, 14h41
  2. Réponses: 4
    Dernier message: 16/03/2007, 18h25
  3. Réponses: 3
    Dernier message: 11/04/2006, 11h41
  4. Réponses: 7
    Dernier message: 30/03/2006, 10h04
  5. [WebForms][2.0]Accéder aux élément DropDownlist via Javascript
    Par steelidol dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 21/10/2005, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo