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 :

Glisser un bouton


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut Glisser un bouton
    Bonjour à tous,

    Je souhaiterais savoir s'il est possible de créer des boutons (ou d'autres éléments) qui soient déplaçables pendant l'execution (en les glissant par exemple).
    Le but étant ensuite de contrôler d'autres actions en fonction de la position en x et en y.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    Merci, ça m'a bien aidé.
    J'ai créé une "textbox" qui se déplace au dessus d'une "picturebox" avec un affichage des coordonnées en temps réel dans 2 "labels".

    Par contre, après plusieurs essais, je n'arrive pas à régler ces problèmes:

    - quand je déplace la "textbox", le rectangle créé disparait, il passe en dessous de la "picturebox"(ça marche quand il n'y a pas de "picturebox")
    - je souhaiterais que ce soit le centre de la "textbox" qui se place sur le curseur (et non pas le coin supérieur gauche)
    - je souhaiterais créer plusieurs "textbox" pouvant toutes se déplacer (une par une) sur la "picturebox" (utilisation d'une boucle?)

    Auriez-vous des solutions?

    Merci d'avance

  4. #4
    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
    pas lu le tuto mais voici un bout de code que j'avais fait pour un truc dans le genre

    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
     
            Private privateDeplacementEnCours As Boolean
            Private privateXdeDepart As Integer
            Private privateYdeDepart As Integer
     
     
            Private Sub OBJ_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
                privateDeplacementEnCours = True
                privateXdeDepart = e.X
                privateYdeDepart = e.Y
            End Sub
     
     
            Private Sub FRM_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
                Dim FRM As System.Windows.Forms.Form
                FRM = CType(sender, System.Windows.Forms.Form)
                If Not privateDeplacementEnCours Then Exit Sub
                FRM.Left = FRM.Left + e.X - privateXdeDepart
                FRM.Top = FRM.Top + e.Y - privateYdeDepart
            End Sub
     
     
            Private Sub CTR_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
                Dim CTRL As System.Windows.Forms.Control
                CTRL = CType(sender, System.Windows.Forms.Control)
                If Not privateDeplacementEnCours Then Exit Sub
                CTRL.Parent.Left = CTRL.Parent.Left + e.X - privateXdeDepart
                CTRL.Parent.Top = CTRL.Parent.Top + e.Y - privateYdeDepart
            End Sub
     
            Private Sub OBJ_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
                privateDeplacementEnCours = False
            End Sub
    avec le code nécessaire pour ajouter les évènements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    'ajout de la fonction sur un control
    AddHandler ctrl.MouseDown, AddressOf OBJ_MouseDown
                        AddHandler ctrl.MouseMove, AddressOf CTR_MouseMove
                        AddHandler ctrl.MouseUp, AddressOf OBJ_MouseUp
    'ajout de la fonction sur la feuille
    AddHandler FRM.MouseDown, AddressOf OBJ_MouseDown
                AddHandler FRM.MouseMove, AddressOf FRM_MouseMove
                AddHandler FRM.MouseUp, AddressOf OBJ_MouseUp
    explications :
    tu peux utiliser ce code pour que X controles ait la fonction que j'appelle grab and move
    tu peux le faire sur une feuille, comme ca peu importe où tu cliques, la feuille se déplacera
    là ca déplace à partir de là où on clique
    si tu veux que dès qu'on clic le curseur se place au milieu de ton textbox, tu as juste à prendre CTR.left + CTR.width\2 et pareil pour la hauteur plutot que d'enregistrer le x et le y où c'est cliqué sur le mouse down

    et pour avoir plusieurs textbox qui font ca, soit tu leur fait tous ces addhandler
    où alors tu créés un usercontrol qui hérite du textbox
    inherits system.windows.forms.textbox
    puis tu lui mets ce code à son nom
    et après au lieu de poser des texbox normaux, tu poses les tiens ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    Malheureusement, je crois que mon faible niveau en VB ne me permet pas de comprendre tes lignes de code, qui ne ressemblent pas beaucoup aux miennes...
    Je ne vois pas trop à quoi correspond OBJ et ce que doit faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FRM.Left = FRM.Left + e.X - privateXdeDepart
    Je dois utiliser les 2 fonctions FRM_MouseMove et CTR_MouseMove ou une seule?
    Ou dois-je mettre le code pour les évènements?

    Pour l'instant, mon code ressemble à ça:
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Imports System.Drawing
     
    Public Class controller
     
        Inherits System.Windows.Forms.Form
     
        Private TextMove As Boolean
        Dim MonRect1 As New Rectangle(0, 0, 0, 0)
        Dim GestGraph As Graphics
     
     
        Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
            TextMove = True
            Me.TextBox1.Hide()
            MonRect1.Size = TextBox1.Size
            MonRect1.Location = Me.PointToClient(Control.MousePosition)
            GestGraph = Me.CreateGraphics
        End Sub
     
     
        Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove, TextBox1.MouseMove
            Dim pinceau As New SolidBrush(TextBox1.BackColor)
            Dim stylo As New Pen(Color.Black, 1)
            If TextMove AndAlso e.Button = Windows.Forms.MouseButtons.Left Then
                GestGraph.Clear(Me.BackColor)
                MonRect1.Location = Me.PointToClient(Control.MousePosition)
                GestGraph.DrawRectangle(stylo, MonRect1)
                GestGraph.FillRectangle(pinceau, MonRect1)
                x_l.Text = MonRect1.Location.X
                y_l.Text = MonRect1.Location.Y
     
            End If
        End Sub
     
     
        Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp, TextBox1.MouseUp
             If TextMove Then
                If MonRect1.IntersectsWith(New Rectangle(image_pb.Location, image_pb.Size)) Then
                    Me.TextBox1.Location = Me.PointToClient(Control.MousePosition)
                Else
                    MsgBox("Restez sur l'image!!")
                End If
                TextMove = False
                GestGraph.Clear(Me.BackColor)
                Me.TextBox1.Show()
                GestGraph.Dispose()
     
            End If
        End Sub
    où "TextBox1" se déplace sur une image "image_pb"

    ça fonctionne bien, sauf que j'ai les problèmes énoncés dans mon précédent post...

    help

    (j'utilise Visual Basic 2005 Express)

  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
    le principe est le suivant
    une variable booléenne pour savoir si on est en déplacement ou non
    sur le mousedown du textbox tu mets à true
    sur le mouseup tu mets à false
    le mousemove se déclenche meme si on est pas cliqué et ca nous permet de sortir si on ne l'est pas

    ensuite moi sur le mousedown je stocke e.x et e.y, les coordonnées de souris sur le textbox au moment du clic

    puis dans le mousemove e.x et e.y ont changé forcément
    donc si e.x est 5 de plus, on va 5 plus loin : textbox.left = textbox.left + 5


    apres moi ce que j'ai fait c'est que plutot de mettre les lignes de code dans les évenement du textbox
    j'ai créé des subs qui font ca et j'utilise addhandler qui sert à dire que quand un évènement se passe textbox.mousemove par exemple on veut lancer une sub précise CTR_mousemove dans mon cas
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    Ok c bon ça fonctionne! Merci!
    Par contre mon control fait des "trainées" (je pense que c due au rafraichissement!?)

    Dans mon cas, c'est des labels (dont le texte est amené à changer au cours de l'utilisation) que je déplace sur une picturebox. Je souhaiterais qu'ils se déplacent 2 par deux (comme s'ils étaient liés) et qu'on puissent les faire glisser en cliquant sur l'un ou sur l'autre.
    J'ai essayé en liant leur position avec "offset" mais ça ne marche pas.

    Comment dois-je m'y prendre pour faire bouger cet ensemble de 2 labels?

  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
    pour les trainnées, essaie sur ton form load :
    me.setstyle(machinpaint, true)
    me.setstyle(doublebuffer,true)


    pour lier tes 2 labels, sur le mousemove des 2 tu fait le code qui bouge les 2
    label1.left = deplacement
    label2.left = deplacement

    tout simplement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    j'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
    Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
    mais ça change rien.
    Tant pis, j'éviterais de déplacer mon controle trop vite!!

    Pour lier les 2 labels, je suis un peu bloqué parce qu'en fait j'ai minimum 30 groupes de 2 labels à déplacer! Il faut que je mettes le code dans les 60 MouseMove??? Parce que l'utilisation du CTRL_MouseMove je trouvais ça plutôt pratique...
    En déplaçant le label1, il faut que le label1bis suive, si c'est le label2 qui bouge, c'est le label2bis qui doit suivre... ainsi de suite!

    A moins que ce soit plus simple de créer un UserControl composé de 2 labels mais les propriétés doivent pouvoir changer indépendamment pour les 2 à l'exécution (text, couleur, taille,...).
    Si c'est possible, pourquoi pas...

  10. #10
    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
    ne jamais faire x fois la meme chose en programmation, il faut mutualiser le code
    en l'occurence, vous faites un user control qui contient 2 labels
    et vous tapez le code qui gère le déplacement

    ensuite dans votre programme vous supprimez tous les labels et vous posez des groupes de labels que vous venez de créé
    résultat : il se déplacent sans que vous ne tapiez une ligne de code dans le programme

    mettre les modifiers des labels à public plutot que friend pour y acceder depuis le programme
    comme ca vous pourrez acceder à grp.label1 et grp.label2
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    C'est bien ce que j'ai tenté de faire mais comme c la première fois que je fais un user control, certaines choses m'échapent...
    J'ai réussi à le créer, compiler et importer la dll dans un projet, mais comment recupérer les propriétés des composants par exemple: label1.Text de UserControl1, ou label4bis.BackColor de UserControl4,... pour pouvoir les gérer dans le code?

    J'ai chercher sur les forums et dans les tutos mais impossible de trouver! Ca doit être tellement évident et facile qu'il y a même pas besoin d'en parler...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserControl1.label1.Text="Serait-ce si simple?"

  12. #12
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Deux solutions :
    - Tu crées des propriétés dans ton usercontrol qui pointent vers les propriétés des label internes
    - Tu rends les controles internes modifiables de l'extérieur. Dans le designer, il s'agit de la propriété 'Modifiers' de chaque controle, tu peux le mettre à internal ou public, et tu pourras accéder à ces controles avec une instruction du type que tu as donné juste avant.

    Cela dit je trouve la première solution beaucoup plus propre.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    Merci, je vais essayer les 2 solutions et voir ce que ça donne...

  14. #14
    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
    le mieux est quand meme de mettre les modifiers à public (et y me semble que je l'avais précisé)

    les modifiers c'est private friend public
    si tu connais pas ca renseigne toi c'est à connaitre

    et quand tu poses un objet sur une feuille/un usercontrol le modifier par défaut est friend (accessible seulement au sein de l'exe/la dll)
    cette propriété est modifiable dans le .designer ou plus simplement dans la fenetre de propriété
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    Effectivement c'était précisé plus haut (sorry)!
    L'accès aux propriétés fonctionne très bien, c'est exactement ce qu'il me fallait. MERCI

    Par contre, j'ai mis les UserControl sur mon image mais ils ne sont pas déplaçables à l'éxécution!
    J'ai bien mis les évènements et tout ce qu'il faut mais apparemment le problème vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim CTRL As System.Windows.Forms.Control
    CTRL = CType(sender, System.Windows.Forms.Control)
    Alors, j'ai tenté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim CTRL As System.Windows.Forms.UserControl
    CTRL = CType(sender, System.Windows.Forms.UserControl)
    mais j'ai l'erreur suivante:
    Impossible d'effectuer un cast d'un objet de type 'deplacement.deplacement' en type 'System.Windows.Forms.UserControl'
    où "deplacement" est le nom de mon projet.

    Qu'est-ce que ça signifie?

  16. #16
    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
    un label est un control et non un usercontrol

    dans ton usercontrol, t'est pas obligé de passer par le code que j'avais fait qui complique la chose dans un usercontrol

    là tu fais juste label1.mousedown => bool = true
    pareil sur label 2
    mouse up bool = false pour les 2 labels

    et sur le mousemove, tu fais déplacer me en fonctions des coordonnées de la souris sur le label au départ
    me est le usercontrol dans ce cas

    enfin as tu bien compris le fonctionnement du code de déplacement ?
    parce qu'utiliser quelque chose sans le comprendre c'est pas top top, car tu peux le reutiliser dans d'autres cas après
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    Je pense avoir compris le code de déplacement mais peut-être que je me trompe! Ce qui n'est pas très clair, c'est les histoires de "parent", "me" et "usercontrol".

    là tu fais juste label1.mousedown => bool = true
    pareil sur label 2
    mouse up bool = false pour les 2 labels

    et sur le mousemove, tu fais déplacer me en fonctions des coordonnées de la souris sur le label au départ
    me est le usercontrol dans ce cas
    Je dois faire ça dans mon projet usercontrol ou dans mon appli?
    Parce que dans mon appli, "label1.mousedown" n'est pas reconnu. Il faudrai mettre "usercontrol.label1.mousedown" mais ça c'est pas possible...

  18. #18
    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 jontleman
    Je pense avoir compris le code de déplacement mais peut-être que je me trompe! Ce qui n'est pas très clair, c'est les histoires de "parent", "me" et "usercontrol".



    Je dois faire ça dans mon projet usercontrol ou dans mon appli?
    Parce que dans mon appli, "label1.mousedown" n'est pas reconnu. Il faudrai mettre "usercontrol.label1.mousedown" mais ça c'est pas possible...

    dans le usercontrol
    comme ca tu écris le code qu'une fois et ca fonctionne pour tous les usercontrol que tu vas poser

    sinon me designe toujours l'objet de type de la classe dans laquelle on l'appelle

    public class form1
    me désigne la feuille en cours
    end class

    public class monusercontrol
    me désignera ici le usercontrol en cours
    end class


    la propriété parent renvoie l'objet parent
    le parent d'un bouton posé sur une feuille est la feuille
    dans le code de ton usercontrol me parent sera la feuille (sauf si tu poses ton usercontrol dans un panel par exemple)

    un usercontrol c'est un controle créé par quelqu'un en opposition à ceux fournis avec visual studio
    après tu les as dans la barre d'outils et tu les poses sur une feuille comme les autres
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    merci pour toutes ces explications, je vais essayer ça...

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 24
    Points
    24
    Par défaut
    Nickel, ça marche bien! Merci!!
    J'ai mon usercontrol dans la boite à outils et j'en ai glissé 10 sur ma feuille.
    Ils sont tous déplaçables à l'éxécution et j'ai accès à leurs propriétés.

    Je rappelle que chaque usercontrol est composé de 2 labels.
    Je modifie indépendammant le text des 20 labels sans problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    usercontrol1.label1.text="truc"
    usercontrol1.label2.text="machin"
    usercontrol2.label1.text="bidule"
    usercontrol2.label2.text="chouette"
    ...
    par contre je voudrais pouvoir modifier la couleur de fond du label1 par exemple, mais que cette modification s'applique à tous mes usercontrol.
    Pour l'instant je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    usercontrol1.label1.BackColor=Color.Blue
    usercontrol2.label1.BackColor=Color.Blue
    usercontrol3.label1.BackColor=Color.Blue
    usercontrol4.label1.BackColor=Color.Blue
    ...
    Est-ce qu'il y a une methode plus simple, ou plus academique??

Discussions similaires

  1. Gérer l'activation d'un bouton et sur un glisser
    Par Rodeo93 dans le forum Débuter
    Réponses: 4
    Dernier message: 06/05/2012, 14h16
  2. [Flex4] Glisser déposer de plusieurs boutons
    Par tunis.tunis dans le forum MXML
    Réponses: 1
    Dernier message: 02/04/2011, 22h17
  3. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  4. Bmp pour boutons
    Par Fizgig dans le forum Outils
    Réponses: 5
    Dernier message: 22/08/2002, 10h56
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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