none
Copier coller un GroupBox en vb RRS feed

  • Question

  • Bonjour

    Je voudrais en fait dupliquer un groupbox, avec tout son contenu, sur un formulaire.
    Opération très simple à faire à la main, je ne trouve pas comment le faire en VB.
    Ç a doit pourtant être facile à faire.
    Si quelqu'un peut m'aider ?
    merci d'avance

    Quelques précisions :

    groupe1 = FenêtreDynamique.Controls("groupbox1")

    Je voudrais pouvoir obtenir une variable groupe2 qui correspond à une copie du groupe1 que je pourrais placer et renommer à ma convenance.

    mais si je fais groupe2 =  groupe1, les deux variables correspondent au même objet.

    Modifier groupe2 a pour effet de modifier aussi groupbox1.

    lundi 11 août 2014 11:37

Réponses

  • Bonjour

    Merci pour la réponse.
    C'est infernal à faire et à mettre au point, il manque toujours quelque chose. J'ai tenté une copie des contrôles d'un groupBox sur un autre, la moitié des contrôles est déplacée, pas dupliquée.
    Le but était de pouvoir modifier le contenu du groupbox de référence et  le dupliquer automatiquement avec les modifications. Il faudrait revenir sur le programme chaque fois.
    Tant pis, je vais le dupliquer à la main.
    Dans un cas comme dans l'autre il n'y a aucune souplesse, mais c'est moins long.

    On peut considérer que le sujet est clos.

    • Marqué comme réponse Aurel Bera mardi 12 août 2014 12:56
    mardi 12 août 2014 12:53

Toutes les réponses

  • Bonjour

     

    Vous ne pouvez pas copier facilement en code un objet dans l'autre.
    Normalement, pour ce type d'objets  on doit implémenter l'interface ICLoneable mais GropupBox n'implémenté pas cette interface.
    Vous devez créer votre classe  qui hérité GroupBox et implémente ICloneable.
    Pour faire la copie vous n’avez pas qu’appeler lObjet.Clone()

    Public Class GroupBoxCloneable
        Inherits GroupBox
        Implements ICloneable
    
    
    
    
        Public Function Clone() As Object Implements ICloneable.Clone
            Dim ret As New GroupBoxCloneable
            ret.Width = Me.Width
            ..........................
            Return ret
        End Function
    End Class

    Une autre option peut être de créer un CustomControl qui sera un GroupBox avec les propriétés voulus et l'instancier chaque fois.

    Bien cordialement,

    <o:p></o:p>



    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 12 août 2014 07:21
  • Bonjour

    Merci pour la réponse.
    C'est infernal à faire et à mettre au point, il manque toujours quelque chose. J'ai tenté une copie des contrôles d'un groupBox sur un autre, la moitié des contrôles est déplacée, pas dupliquée.
    Le but était de pouvoir modifier le contenu du groupbox de référence et  le dupliquer automatiquement avec les modifications. Il faudrait revenir sur le programme chaque fois.
    Tant pis, je vais le dupliquer à la main.
    Dans un cas comme dans l'autre il n'y a aucune souplesse, mais c'est moins long.

    On peut considérer que le sujet est clos.

    • Marqué comme réponse Aurel Bera mardi 12 août 2014 12:56
    mardi 12 août 2014 12:53