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

  1. #1
    Membre du Club
    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
    Points : 55
    Points
    55
    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 sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    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 du Club
    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
    Points : 55
    Points
    55
    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
    Responsable .NET

    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
    Points : 252 372
    Points
    252 372
    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 du Club
    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
    Points : 55
    Points
    55
    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
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    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

  7. #7
    Membre averti 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
    Points : 426
    Points
    426
    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

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    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

  9. #9
    Membre du Club
    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
    Points : 55
    Points
    55
    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
    Responsable .NET

    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
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    puisque nous somme en orienté objet tu peut créer tes propre objet(cloné que tu l'a mentionné dans l'intitulé de ton message)
    je m'explique après avoir créer ton usercontrol tu compile et tu générer une dll
    et la lorsque tu va extensier un nouveau usercontrol sa va hériter tout les éléments du clone je crois que sa devrais résoudre ton problème
    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

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    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

  12. #12
    Membre du Club
    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
    Points : 55
    Points
    55
    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

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca n'empeche que c'est comme tout ca s'apprend :

    http://plasserre.developpez.com/vsommair.htm
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre du Club
    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
    Points : 55
    Points
    55
    Par défaut
    j'ai déjà ce site dans mes favoris merci

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il ne suffit pas de l'avoir dans les favoris, mais il faut le lire d'un bloc
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre du Club
    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
    Points : 55
    Points
    55
    Par défaut
    j'a imprimer toutes les pages, je les lis, et j'essaye de progresser pour pouvoir faire des études d'ingénieurs informatique mais je vois pas ce que je peux faire de plus. Certe j'ai des points faible comme les boucles mais j'ai réussis à comprendre comment les utiliser et je travaille dessus. Ca fait déjà 2 ans que je travaille et j'ai commencer avec VB3. J'ai beaucoup apris en 2 ans et ca va continuer.

    Lire tout d'un bloc ?
    tu veux quand même pas tout lire d'un coup ?? Y a au moins 10 cm de page imprimer !

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    t'es en avance vu ton age ^^

    les boucles sont pas trop expliquées sur ce site, car c'est de l'algorithmie, commune à tous les langages, c'est les bases en fait, mais ca doit se trouver autre part

    et lire tout d'un bloc c'est faisable, moi quand je suis passé de vb6 à vb.net j'ai lu tout le site pendant une semaine à raison que plusieurs heures par jour

    ca permet de connaitre ce qui existe, plutot que de faire des bricolages pour faire certaines choses


    après si tu veux poursuivre ton apprentissage je te conseille de tester wpf, là aussi y a pas mal à assimiler, l'approche étant vraiment différente des windows forms
    mais le potentiel est impressionnant ... et ca permet de développer encore plus rapidement


    PS : pour sauver la planete, faut le lire sur le site
    lol
    et puis faudrait voir si l'electricité nécessaire au pc est moins nocive qu'imprimer quelques pages ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  18. #18
    Membre du Club
    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
    Points : 55
    Points
    55
    Par défaut
    ouai j'ai imprimer 500 pages xD

    J'ai déjà testé le WPF je trouve ca très designe

+ 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