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 :

Instanciation d'une classe avec picturebox [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Points : 77
    Points
    77
    Par défaut Instanciation d'une classe avec picturebox
    Je reviens vers vous après avoir tenté de suivre les conseils qui m’ont été prodigués sur la façon de codifier mon projet qui consiste (en gros) à déplacer une PictureBox dans une fenêtre. Pour cela j’ai redémarré un projet dans lequel :
    L’application démarre sur la Fenêtre (le Form1 standard)
    J’ai créé un module de classe Cellules pour instancier des cellules avec constructeur, propriétés et méthode, qui contient la Picturebox dont voici le code :
    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
    Public Class Cellules
        Private _monNom As String                   'nom de la cellule
        Private Shared _notreNombre As Integer = 0  'nombre de cellules
        Private _monCadre As New PictureBox         'contient le dessin de la cellule
        Private _maDirection As Orientation         'direction dans laquelle se déplace la cellule
     
        Public Sub New()
            'initialise la cellule lors de sa création
            _notreNombre += 1
            _monCadre.BackgroundImage = My.Resources.Cellule_Est
            _maDirection = Orientation.Est
        End Sub
     
        Public Property Nom() As String
            Get
                Return _monNom
            End Get
            Set(ByVal value As String)
                _monNom = value
            End Set
        End Property
     
        Public Property Cadre() As PictureBox
            Get
                Return _monCadre
            End Get
            Set(ByVal value As PictureBox)
                _monCadre = value
            End Set
        End Property
     
        Public Sub Affiche()
            Me._monCadre.Refresh()
        End Sub
    End Class
    Je crée LaCellule dans la Fenêtre, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Class Fenêtre
        Public LaCellule As New Cellules
     
        Private Sub Fenêtre_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            'initialisation
            With Me
                .Width = 800
                .Height = 600
                .Location = New Point(100, 100)
                .BackColor = Color.White
            End With
        End Sub
     
    End Class
    Ce que j'ai mis en place, pour l'instant est-il correct ?
    Je ne vois pas où et comment je pourrais faire figurer le code d’affichage de la PictureBox de la cellule, du genre Fenêtre.LaCellule.Affiche().
    Pourriez-vous me venir en aide ?
    Merci

    P.S. Par souci de clarté pour ma question j'ai limité le projet uniquement sur ce point. Dans ce cas précis il serait trivial de créer la PictureBox directement dans la fenêtre, ce n'est pas l'objectif.
    Mille jours d’entraînement pour forger, dix milles jours d’entraînement pour polir.
    Shimen Musashi - Gorin-no-sho Rouleau de l’eau

  2. #2
    Membre régulier Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Points : 77
    Points
    77
    Par défaut Ne jamais désespérer
    Bonsoir, finalement je vais répondre à mes questions, la consultation de divers tutoriels m'a inspiré les pistes à explorer.

    Concernant le fait que la classe Cellules utilise une PictureBox celle-ci doit être mise en oeuvre en 2 temps :
    dans la déclaration des variables de la classe pour créer ce contrôle, sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Private _monCadre As New PictureBox
    après l'ouverture de la fenêtre pour l'ajouter à la liste des contrôles, sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Me.Controls.Add(Cellule1.Cadre)
    Pour le positionnement de ce dernier j'ai résolu le problème en créant dans ma fenêtre un bouton Départ et en lui associant le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Me.Controls.Add(Cellule1.Cadre)
            Cellule1.Cadre.Refresh()
    Etant resté sur mon habitude de programmation "traditionnelle", je cherchais où je pouvais placer un Sub main() pour y placer ces instructions. Les habitudes sont dures à perdre.
    Salutations nocturnes.
    Mille jours d’entraînement pour forger, dix milles jours d’entraînement pour polir.
    Shimen Musashi - Gorin-no-sho Rouleau de l’eau

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/10/2014, 16h53
  2. Instanciation d'une classe avec héritage QSettings
    Par bigtouf dans le forum Débuter
    Réponses: 2
    Dernier message: 11/10/2011, 21h44
  3. Instancier une classe avec un arraylist et exception
    Par Chacha35 dans le forum Collection et Stream
    Réponses: 17
    Dernier message: 24/03/2010, 16h10
  4. Instancier une classe avec son nom
    Par Arrakis dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2009, 17h57
  5. [PHP 5.0] instancier une classe avec son nom dans une variable
    Par Nnay_ dans le forum Langage
    Réponses: 1
    Dernier message: 12/02/2009, 12h49

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