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 :

Accéder a un Ovalshape par son nom


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut Accéder a un Ovalshape par son nom
    Bonjour,
    C'est encore moi mais l'application n'en est plus au même niveau qu'hier ^^
    Je suis sur un problème que je pourrais contourner en magouillant bien comme il faut, mais je ne veux pas me résoudre à le faire.
    En effet, comme l'indique le titre, je souhaite pouvoir accéder à un élément Ovalshape en utilisant son nom.
    La raison d'une telle demande : Chaque ovalshape que je possède (et ils sont nombreux (96, pour l'instant)) devra changé de couleur en fonction de la valeur d'une variable. Etant donné le nombre de shape, j'ai appelé chacune d'elle par un nom de ce type : "O" & coordonnée. Ce qui donne pour exemple : OA1

    J'ai bêtement tenté un schema.controls.find("O" & coordonnée)**. Mais bien sur il ne trouve rien, les shapes ne sont pas des controls mais des Microsoft.VisualBasic.Powerpacks.Ovalshapes.

    Et bien sur sur msdn, j'apprends qu'une méthode équivalente n'existe pas ...
    J'aimerais donc savoir comment accéder à mes petits ronds en utilisant le nom que je leur ai donné.
    En espérant être compris ^^'


    **"schema" est le nom d'un Form, je recherche en effet a changer la couleurs de shapes dans un deuxième form et l'afficher à la fin.

  2. #2
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Salut,
    Je n'ai jamais joué avec le Microsoft.VisualBasic.Powerpacks et ses shapes, mais si j'en crois la documentation, t'es sensé ajouter tes shapes dans un ShapeContainer. Celui-ci possède une propriété "Shapes" qui est une collection des shapes.
    Tu peux itérer sur cette collection pour trouver le shape souhaité.

  3. #3
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Merci pour votre réponse.
    J'ai fouillé un peu. En effet on peut utiliser le shapecontainer mais on peut y accéder sans aussi. Le soucis c'est que je ne trouve toujours pas de moyen pour accéder au cercles créés par leurs nom, du moins pas si je le construit en collant deux bouts de texte :
    schema.OA1 fonctionnerait;
    il me faudrait schema."O" & p où p variable, p="A1".

    Donc je suis pas avancé ^^' Je vais me pencher sur un moyen d'ecrire une ligne en string et l’exécuter en aval, j'espère tout de même obtenir de votre part une solution plus propre ^^'

  4. #4
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Oula je crois que tu confonds tout. Quand tu poses un contrôle le designer génère une variable nommé comme le contenu de sa propriété name. Mais ce sont bien deux choses différentes. Tu ne peux pas construire une chaine correspondant au nom d'une variable pour utiliser cette chaine ensuite comme s'il s'agissait de la variable elle meme. En revanche tu peux faire un foreach sur la collection et tester la propriété name pour voir si elle est identique a ta variable. Dans ce cas tu es bien sur la bonne shape.

    Dsl pour le pavé, pas facile de faire de la mise en forme quand on tape depuis son téléphone.

  5. #5
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Pas de soucis c'est très clair ^^
    Je ne confond pas, je cherche une méthode. On peut accéder à énormément de contrôle en donnant leurs nom, mais visiblement il n'y a pas de méthode pour les ovalshape.
    Par contre j'avais pas pensé d'instinct au for each, je vais donc tenter de l'utiliser pour créer ma méthode, merci

  6. #6
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub colorer(ByRef nom As String, ByRef couleur As Color)
            For Each o In schema.ShapeContainer1.Shapes
                If o.name = nom Then
                    o.fillcolor = couleur
                End If
            Next
        End Sub
    Ça fonctionne ^^ j'ai encore trop peu d'expérience pour sortir des sentiers battus tout seul. Merci beaucoup.

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

Discussions similaires

  1. [C#] Comment accéder à un contrôle par son nom ?
    Par km3l3on dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/06/2010, 19h34
  2. [PHP 5.1] Accéder à une variable par son nom
    Par Papy214 dans le forum Langage
    Réponses: 6
    Dernier message: 07/12/2009, 15h21
  3. Accéder aux propriétés d'une interface par son nom
    Par slimjoe dans le forum Langage
    Réponses: 1
    Dernier message: 06/07/2007, 14h31
  4. Réponses: 3
    Dernier message: 25/02/2007, 18h49
  5. Accéder à une propriété par son nom
    Par Neilos dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/09/2005, 21h34

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