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 :

clic et infos sur objet créé dynamiquement


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut clic et infos sur objet créé dynamiquement
    Bonjour à tous,
    Je créé des label dynamiquement comme suit :
    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
     
    Public ImgImmeuble() As Label
    Public imgX, imgY As Integer
    Private Sub Button_AdImmeubl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_AdImmeubl.Click
            Dim nomimmeuble As String
            nomimmeuble = InputBox("Entrez le nom de l'immeuble", "Nom de l'immeuble")
            NbImmeubl = NbImmeubl + 1
            ReDim Preserve ImgImmeuble(NbImmeubl)
            ImgImmeuble(NbImmeubl) = New Label
            With ImgImmeuble(NbImmeubl)
                .Top = 45 + 100 * (NbImmeubl - 1)
                .Left = 1
                .Width = 73
                .Height = 73
                .BackgroundImage = Image.FromFile("immeuble.png")
                .Text = nomimmeuble
                .TextAlign = ContentAlignment.BottomCenter
                .Font = New System.Drawing.Font(ImgImmeuble(NbImmeubl).Font, FontStyle.Bold)
     
     
            End With
            imgX = ImgImmeuble(NbImmeubl).Left
            imgY = ImgImmeuble(NbImmeubl).Top
            Me.Controls.Add(ImgImmeuble(NbImmeubl))
            AddHandler ImgImmeuble(NbImmeubl).Click, AddressOf imgclick
     
        End Sub
    J'aimerais que lorsque je clique sur ce label, il soit entouré d'un rectangle jaune. Ainsi, j'avais écris mon sub comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub imgclick()
            RectangleShape1.Visible = True
            RectangleShape1.Left = imgX
            RectangleShape1.Top = imgY
            ImgImmeuble(NbImmeubl).SendToBack()
            RectangleShape1.BringToFront()
     
        End Sub
    Bien évidement mais malheureusement pour moi, le rectangle vient se placer autour du dernier label créé et non pas autour de celui qui est cliqué.
    Quelqu'un aurait une piste de solution ?
    Comment récupérer les positions .Top et .Left au clic d'un objet créé dynamiquement ?

    1ère question subsidiaire : Bien que j'ai installé Visual Basic Power Pack 3.0, je ne parviens pas à dessiner de ligne, rectangle ... dans Visual Studio 2015 alors que ça fonctionne dans Visual Studio 2010. J'ai loupé quelque chose ?

    2èmer question subsidiaire : Est-il possible d'avoir le contour des lettres d'un label blanc pour des lettres noires ? Un peu comme les sous-titres afin de s'assurer que le texte se détache bien du fond pour garantir la lisibilité ?

    Merci d'avance pour vos réponses

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Comment récupérer les positions .Top et .Left au clic d'un objet créé dynamiquement ?
    Dans ta Sub imgclick la signature est manquante ce qui ne te permettra pas de savoir quel est l'objet (le label) qui a été clické !

    La signature d'une procédure Click est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub imgclick(sender As System.Object, e As System.EventArgs)
        'On récupère l'objet qui a déclenché l'event Click
        Dim Lbl as Label= TryCast(sender, Label)
        msgbox(Lbl.Name & " a été clické !")
    End Sub
    1ère question subsidiaire : Bien que j'ai installé Visual Basic Power Pack 3.0, je ne parviens pas à dessiner de ligne, rectangle ... dans Visual Studio 2015 alors que ça fonctionne dans Visual Studio 2010. J'ai loupé quelque chose ?
    Je ne sais pas je n'ai jamais utilisé Power Pack ....

    2èmer question subsidiaire : Est-il possible d'avoir le contour des lettres d'un label blanc pour des lettres noires ? Un peu comme les sous-titres afin de s'assurer que le texte se détache bien du fond pour garantir la lisibilité ?
    Je vois ce que tu veux dire mais tu parles de quels sous-titres, à quel endroit de quel logiciel ????

    Pour pouvoir obtenir cet effet il faut dessiner et ne pas utiliser de Label (sauf si tu utilises WPF ou tout est paramétrable).

    A+

  3. #3
    Membre très actif
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut
    Impec, merci pour tes infos !


    En ce qui concerne l'entourage des lettres, c'est sur une label "classique".
    Qu'est ce que tu appelles WPF ?
    S'il me faut passer par un dessin, ça va virer à l'usine à gaz pour pas grand chose. Je vais tâcher de faire autrement.

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par djedje-08 Voir le message
    Impec, merci pour tes infos !


    En ce qui concerne l'entourage des lettres, c'est sur une label "classique".
    Si tu veux faire ça en te basant sur la classe Label alors tu peux oublier ! Comme évoqué il faut dessiner en utilisant GDI et/ou hériter de la classe Control,voilà qui devrait te convenir :

    https://social.msdn.microsoft.com/Fo...orum=vbgeneral

    ---> Le résultat :

    http://www.codeproject.com/Articles/...effects-with-C

    Citation Envoyé par djedje-08 Voir le message
    Qu'est ce que tu appelles WPF ?
    Windows Presentation Foundation


    A+

  5. #5
    Membre très actif
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Par défaut
    nickel !
    Merci pour tes précisions

  6. #6
    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
    vb powerpack si tu peux t'en passer c'est pas plus mal, les objets lignes et autres sont d'une lenteur impressionnante
    tu peux t'abonner à l'event Paint d'un control (ou du form) pour dessiner des lignes ou autre, et ca sera plus performant
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 19/08/2016, 21h33
  2. [VB 2010] Evénement sur objet créé dynamiquement
    Par djedje-08 dans le forum VB.NET
    Réponses: 6
    Dernier message: 18/08/2016, 10h37
  3. Afficher au clic les infos sur un membre
    Par johanna1 dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2015, 16h00
  4. addEventListener sur objet créé dynamiquement
    Par Jim_Nastiq dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/10/2009, 16h20
  5. [Vxi3] info sur objets de rapport
    Par rab2009 dans le forum Webi
    Réponses: 2
    Dernier message: 18/02/2009, 14h20

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