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 :

Indexation des pictureBox avec Tag. Peut-on faire mieux?


Sujet :

VB.NET

  1. #21
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    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 150
    Points : 25 066
    Points
    25 066
    Par défaut
    addhandler fonctionne pour tout, même pour les classes non graphiques

    par contre pour avoir le droit de droper sur un controle, celui ci doit avoir allowdrop = true (donc à setter dans ta boucle) (et peut etre gérer dragover)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #22
    Membre habitué Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 305
    Points : 181
    Points
    181
    Par défaut
    Bonsoir,

    Merci pour l'info mais après deux jours de recherches ça ne fonctionne toujours pas (impossible de dropper même avec addhandler, allowdrop=true et mousedown.enter).

    Je continue le reste de mon programme en attendant de trouver la bonne astuce.

    A+
    La Connaissance est comme le rire elle est contagieuse en la partageant!

  3. #23
    Membre habitué Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 305
    Points : 181
    Points
    181
    Par défaut
    bonsoir,

    Je mes suis remis à l'ouvrage et j'ai trouvé la solution :

    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
      'Pour obtenir les coordonnées X et y des pièces listés - non utilisé dans ce programme !
        Public Sub ControlFind()
     
            Dim pictureRN = Me.Controls.Find("RN", True)
     
            Dim pictureDN = Me.Controls.Find("DN", True)
     
            Dim pictureRB = Me.Controls.Find("RB", True)
     
            MessageBox.Show("RN:  " + pictureRN(0).Location.ToString() + ",DN:" + pictureDN(0).Location.ToString() + ",RB:" + pictureRB(0).Location.ToString())
     
     
        End Sub
     
     
        'pour obtenir les coordonnées x et y de l'objet pointé
        Public Sub LoopControls()
     
            Dim localPoint As String = ""
     
            For Each con In Me.Controls
     
                If TypeOf con Is PictureBox Then
     
                    Dim c As Control = con
     
                    localPoint += c.Name + ":" + c.Location.ToString() + ","
     
                End If
     
            Next
     
            MessageBox.Show(localPoint.Substring(0, localPoint.Length - 1))
     
        End Sub

    On notera que 'If TypeOf con Is PictureBox Then 'exclu les controls dont le non ne contient pas Picturebox. Exemeple: RN ou MonImage seront exclu par contre PictureBox65 sera montré.

    C'était si simple, il suffit de remplacer " If TypeOf con Is PictureBox Then" par " If TypeOf con Is MaChaine Then "
    ou le string MaChaine est le nom de la picturebox que l'on veut afficher.

    Les deux sub sont équivalent au niveau résultat, mais je préfère le second plus souple au niveau des choix.

    On peut donc faire plus court ! :

    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
      Public Sub LoopControls()
     
            Dim localPoint As String = ""
     
            For Each con In Me.Controls
     
                'If TypeOf con Is PictureBox Then 'exclu les controls dont le non ne contient pas Picturebox. Exemeple RN sera exclu. PictureBox65 sera montré.
     
                Dim c As Control = con
                         If c.Name = Pieces Then PosX =  c.Location.X.ToString : PosY =  c.Location.Y.ToString       ': localPoint += c.Name + ": " + c.Location.ToString + "," + " PosX " + PosX + " PosY " + PosY
                'End If
            Next
     
            '  MessageBox.Show(localPoint.Substring(0, localPoint.Length))
     
        End Sub
    CQFD !
    La Connaissance est comme le rire elle est contagieuse en la partageant!

  4. #24
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par excalybur Voir le message
    bonsoir,

    On notera que 'If TypeOf con Is PictureBox Then 'exclu les controls dont le non ne contient pas Picturebox.
    Faux. Le type d'un objet n'a rien à voir avec son nom.


    CQFD !
    Vraiment pas convaincu.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. comparer des strings avec retour ligne, comment faire?
    Par paf26 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2015, 14h54
  2. Mon ami printmap() peut-il faire mieux ?
    Par tbkgeo dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 20/03/2013, 19h01
  3. Réponses: 8
    Dernier message: 04/06/2012, 18h07
  4. [Tableaux] Indexation des images avec scandir
    Par Gunner4902 dans le forum Langage
    Réponses: 17
    Dernier message: 04/03/2008, 15h19
  5. Peut-on faire des colonnes avec "div"
    Par lodan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/07/2006, 07h56

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