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

VB.NET Discussion :

convertir un string en control


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut convertir un string en control
    Bonjour
    Mon projet vb .net est composé de plusieurs projets dans chaque projet j’ai different user control
    Dans le projet A je liste l’ensemble des user control de tous les projets A B et C
    Je recupere le nom des user control dans une variable
    Je veux ensuite transformer le contenu de la variable (donc le nom d’un user control d’un des projet) en objet control pour directement intervenir dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim monCU As String = "MONCU"
    Dim ctrl As Control = CType(monCU, Control)
    (le probleme vient de la transformation du string en control)
    Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ReadControls(ByVal ctrl As Control)
    For Each c As Control In ctrl.Controls
    MessageBox.Show(c.Name)
    If c.Controls.Count > 0 Then ReadControls(c)
    Next
    End Sub

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par el-gringo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim monCU As String = "MONCU"
    Dim ctrl As Control = CType(monCU, Control)
    , ne refait jamais ça

    Bon par contre, tu veux pouvoir accéder aux contrôles dont tu a pu obtenir le nom dans ReadControls ? Tu peut les rajouter dans un Dictionary(Of String, Control) et tu pourra alors accéder aux contrôles avec leur noms. (Pour l'aide concernant le Dictionary, regarde ici).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Merci pour ton aide, mais la solution est un peu compliquée pour moi le debutant, je vais essayer de comprendre.
    par contre avant de pouvoir accéder aux contrôles dont j'ai pu obtenir le nom dans ReadControls, il me faut deja passer mon 1er STRING en CONTROL,
    transformer monCU en Ctrl
    @+

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    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 156
    Points : 25 075
    Points
    25 075
    Par défaut
    il est totalement impossible de transformer un string en control
    ca n'a aucun sens !!


    par contre au lieu de prendre les noms de tes controls pour les envoyer, prend les controls directement et envoie les, là tu pourras les modifier



    Dans le projet A je liste l’ensemble des user control de tous les projets A B et C
    l'ensemble des instances ou l'ensemble des types ?


    ton histoire n'est pas claire du tout !!!
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    En fait tu pourrai pas expliquer globalement ce que tu veux faire ? (pas en détail, car l'histoire de transformer c'est impossible ...)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Bonjour
    Je liste l’ensemble des dll de mes projets pour ne garder que celle qui correspondent aux projets qui contiennent la couche client (interface client) qui on les caractères IU dans le nom (car la dénomination IU pour nous = interface utilisateur) ensuite je liste l’ensemble des types de chaque projet pour ne garder que les types avec un nom qui contient les lettres IU (car la dénomination IU pour nous = interface utilisateur)
    Donc j’obtiens une liste avec l’ensemble des noms de toutes mes interfaces utilisateurs (toutes mes fenêtres) je veux maintenant pouvoir lister l’ensemble des controls de chaque interface utilisateur.
    Donc il faut que je transforme ma liste de user control (fenêtre utilisateur) en control pour intervenir dessus.

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    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 156
    Points : 25 075
    Points
    25 075
    Par défaut
    ca ne fonctionne pas comme ca
    avec un nom de type, tu peux créer une instance
    mais si à un instant T tu as 3 instance de ce controle ouvertes, tu ne peux pas en à partir du nom en avoir une, d'ailleurs laquelle ca te donnerais

    si tu espérais avoir celle posée sur la fenetre, c'est pas possible non plus, la fenetre n'étant pas ouverte, l'instance n'étant pas créé, elle n'est pas accessible

    donc ce que tu veux faire est impossible, ou alors il faut le faire pendant que l'appli tourne et que toutes les fenetres sont ouvertes (et si certaines ont des controles créé à la volée selon une condition, ca devient vite le border)


    quelle est la finalité d'avoir accès à tous les controles de ton appli ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    ca ne fonctionne pas comme ca
    avec un nom de type, tu peux créer une instance
    mais si à un instant T tu as 3 instance de ce controle ouvertes, tu ne peux pas en à partir du nom en avoir une, d'ailleurs laquelle ca te donnerais

    si tu espérais avoir celle posée sur la fenetre, c'est pas possible non plus, la fenetre n'étant pas ouverte, l'instance n'étant pas créé, elle n'est pas accessible

    donc ce que tu veux faire est impossible, ou alors il faut le faire pendant que l'appli tourne et que toutes les fenetres sont ouvertes (et si certaines ont des controles créé à la volée selon une condition, ca devient vite le border)


    quelle est la finalité d'avoir accès à tous les controles de ton appli ?

    Je veux juste avoir acces au 1er user control (mes fenetres) pour lister l’ensemble des controls a l’interieur de celui-ci (bouton, liste, combo etc…). je veux pas y intervenir dessus, juste les lister.

    j'ai deja listé et filtré les projets contenant les interfaces utilisateurs, puis les user control (les fenetres de chaque projets) et maintenant je veux lister et filtrer l'ensemble des controls de chaque fenetres.

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    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 156
    Points : 25 075
    Points
    25 075
    Par défaut
    je viens de te dire que sans instance tu ne peux rien faire (et meme avec c'est pas top)
    ou alors lire le code source pour savoir car c'est écrit dans le fichier designer ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    En fait si on peut. Le Designer crée des membres d'instance (Label, Panel, etc...) pour représenter chaque contrôle de la fenêtre. Donc avec la reflexion si on liste tous les membres d'instance privés, on peut en déduire quels sont les contrôles présents sur la fenêtre, sans l'instancier.

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    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 156
    Points : 25 075
    Points
    25 075
    Par défaut
    ah oui c'est vrai ca doit etre le withevents qui fait ca il me semble
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Bonjour
    donc pas d'idées pour passer de ma liste de user control (mes fenetres) qui sont des strings en control ou autres pour les lister.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim monCU As String = "MONCU"
    donc passer monCU en ctrl pour faire la suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ReadControls(ByVal ctrl As Control)
    For Each c As Control In ctrl.Controls
    MessageBox.Show(c.Name)
    If c.Controls.Count > 0 Then ReadControls(c)
    Next
    End Sub

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Non, pas directement, ça c'est impossible. Si tu as le courage il faudrait que tu apprennes à te servir de la reflexion, sinon c'est impossible.

Discussions similaires

  1. Convertir un string en binaire
    Par TekP@f dans le forum ASP
    Réponses: 4
    Dernier message: 10/05/2005, 16h17
  2. [Firebird] Convertir une String en date
    Par laffreuxthomas dans le forum SQL
    Réponses: 1
    Dernier message: 04/05/2005, 19h42
  3. [Débutant(e)]convertir un string en entier
    Par harris_macken dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2005, 07h20
  4. Convertir un string en type property ou object
    Par bencot dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2004, 20h18

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