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 :

Créer un objet à partir d'une classe existante (Panel1)


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Points : 59
    Points
    59
    Par défaut Créer un objet à partir d'une classe existante (Panel1)
    Bonsoir,
    j'ai besoin de créer des fiches de commentaire successives dans des dossiers clients, chaque fiche de commentaire s'affiche sous forme d'un Panel, appelons le "Panel1"
    ce panel contient plusieurs contrôles (un label pour la date et deux textbox pour les commentaires)
    pour créer un nouveau commentaire il faut afficher un nouveau "Panel1" à la suite des autres.
    Je comptais donc écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim pan as new Panel1
    etc...
    mais ça ne marche pas car je pense qu'il faut que "panel1" soit une classe...
    je cherche donc à créer une classe correspondant à mon objet graphique "Panel1" avec ses contrôles, mais là je ne sais pas trop comment faire...

    Merci pour votre aide précieuse.
    Philippe

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Bonjour,

    C'est bien, avec ton code tu créés un nouvel Panel,
    mais il faut ajouter le contrôle à ta form en suite, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            'on ajoute un Panel à ta form
            Dim Panel1 As New Panel
            Me.Controls.Add(Panel1)
            'on ajoute un label à ton Panel1:
            Dim Label1 As New Label
            Panel1.Controls.Add(Label1)
            'etc...

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par filtep Voir le message
    Bonsoir,
    j'ai besoin de créer des fiches de commentaire successives dans des dossiers clients, chaque fiche de commentaire s'affiche sous forme d'un Panel, appelons le "Panel1"
    ce panel contient plusieurs contrôles (un label pour la date et deux textbox pour les commentaires)
    pour créer un nouveau commentaire il faut afficher un nouveau "Panel1" à la suite des autres.
    Je comptais donc écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim pan as new Panel1
    etc...
    mais ça ne marche pas car je pense qu'il faut que "panel1" soit une classe...
    je cherche donc à créer une classe correspondant à mon objet graphique "Panel1" avec ses contrôles, mais là je ne sais pas trop comment faire...

    Merci pour votre aide précieuse.
    Philippe

    C'est exact il faut que panel1 soit au choix, une classe PanelPerso ou un usercontrol.

    Pour la classe, il faut que tu la crées, que tu la fasses hériter de la classe windows.forms.panel pour avoir accès à ses méthodes de fonctionnement, que tu déclares et ajoutes les controls que ton panel possèdera et il ne te restera alors plus qu'à créer des instances de ta classe pour avoir tes panels 'commentaires'.
    Un peu de code illustre mieux que mes explications je pense ...

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     
    Public Class TonPanel
        Inherits Panel
     
     
        '///// Controls
        Friend WithEvents Label2 As System.Windows.Forms.Label
        Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
        Friend WithEvents Label1 As System.Windows.Forms.Label
     
     
        '///// Constructeur
        Public Sub New()
            MyBase.New()
            InitializeComponent()
     
            initialiserUI()
        End Sub
     
        '///// Méthodes
        Private Sub InitializeComponent()
            Me.Label1 = New System.Windows.Forms.Label()
            Me.TextBox1 = New System.Windows.Forms.TextBox()
            Me.Label2 = New System.Windows.Forms.Label()
            Me.SuspendLayout()
            '
            'Label1
            '
            Me.Label1.AutoSize = True
            Me.Label1.Location = New System.Drawing.Point(0, 0)
            Me.Label1.Name = "Label1"
            Me.Label1.Size = New System.Drawing.Size(100, 23)
            Me.Label1.TabIndex = 0
            Me.Label1.Text = "Label1"
            '
            'TextBox1
            '
            Me.TextBox1.Location = New System.Drawing.Point(0, 0)
            Me.TextBox1.Name = "TextBox1"
            Me.TextBox1.Size = New System.Drawing.Size(100, 20)
            Me.TextBox1.TabIndex = 0
            '
            'Label2
            '
            Me.Label2.AutoSize = True
            Me.Label2.Location = New System.Drawing.Point(0, 0)
            Me.Label2.Name = "Label2"
            Me.Label2.Size = New System.Drawing.Size(100, 23)
            Me.Label2.TabIndex = 0
            Me.Label2.Text = "Label2"
            Me.ResumeLayout(False)
        End Sub
     
        Private Sub initialiserUI()
     
     
            Controls.Add(Label1)
            Controls.Add(Label2)
            Controls.Add(TextBox1)
     
        End Sub
    End Class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            'On déclare
            Dim panComment As TonPanel
            'On instancie
            panComment = New TonPanel
            'On ajoute sur le form ('Me' désigne Form1 ici)
            Me.Controls.Add(panComment)

    Et pour ce qui est de l'userControl, il te faut faire clic droit sur la racine du projet dans ton explorateur de solution et faire "Ajouter" -> "Ajouter un UserControl".
    Il apparaîtra un userControl1 vierge, tu peux glisser/déposer des controls dedans, et tu n'a plus qu'à compiler et instancier des objets userControl1. La nuance est que je ne garantis pas que l'userControl possède toutes les méthodes de panel, et qu'avec ton userControl il y aura un fichier .Designer.vb et un .resx qui accompagneront ton fichier de classe. (Et un tas de petits trucs qui me déplaisent avec l'userControl, mais c'est un choix personnel)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            'On déclare
            Dim panComment As UserControl1
            'On instancie
            panComment = New UserControl1
            'On ajoute sur le form ('Me' désigne Form1 ici)
            Me.Controls.Add(panComment)
    Je ne suis peut-être pas très clair ... Si tu as des questions n'hésite pas.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Points : 59
    Points
    59
    Par défaut
    Bonjour et merci pour vos réponses,

    j'ai opté pour le Usercontrôle qui fait exactement ce dont j'ai besoin.
    La création de classes est plus obscure pour moi, il faut du temps je pense pour être à l'aise avec ça.
    C'est une des raisons pour laquelle j'ai mis temporairement de côté ma "formation en C++" (je suis un amateur bien entendu...)

    Merci encore pour votre aide et à bientôt

    Philippe

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

Discussions similaires

  1. Créer un objet à partir d'une BDD
    Par Jean-Marc68 dans le forum C#
    Réponses: 3
    Dernier message: 10/02/2013, 20h06
  2. Réponses: 1
    Dernier message: 14/07/2008, 11h17
  3. Réponses: 2
    Dernier message: 14/09/2007, 10h18
  4. Réponses: 6
    Dernier message: 21/05/2006, 20h37
  5. Créer une liste d'objets statiques dans une classe
    Par crossbowman dans le forum C++
    Réponses: 3
    Dernier message: 13/03/2006, 09h11

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