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 :

Creation objets dynamiques


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut Creation objets dynamiques
    Bonjour a tout le monde


    Question ( peut être bête , mais bon )

    Est-il possible de créer un objet sur une form, a partir d'une autre

    exemple de code !!! pour explication

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class Form1
     
    For i= 0 to MonDatagridView.rows.count-1
     
    If MonDatagridView.rows(i).cell("MaPage").value=1 then Créer objet1 Picture sur Form2
     
    If MonDatagridView.rows(i).cell("MaPage").value=2 then Créer un objet1 Picture sur Form3
     
    If MonDatagridView.rows(i).cell("MaPage").value=1 then Créer objet2 Picture sur Form2
     
    next i
    end Class

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Form est un container comme un autre.

    Par objet, on va supposer que tu veux parler de Control

    Tu peux parfaitement instancier un Controlet l'ajouter à la collection Controls de n'importe quelle Form (mais une seule à la fois : car tout Control dans un container référence son Container dans sa propriété Parent).

    La seule contrainte est que cette manip doit être faite dans le thread qui a instancié la form à laquelle tu ajoutes des Controls.

  3. #3
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    merci Bluedeep pour l'info

    As-tu une référence ou exemple de code a ce sujet

  4. #4
    Membre éprouvé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Par défaut
    Re-

    Ceci fonctionne, mais je crois être coincé plus loin car je voudrais lors de l'affichage de ma form frmpage1 pouvoir déplacer mon Pb créé dynamiquement avec la souris ( voir code plus bas ). mais....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      Dim pb As PictureBox = New PictureBox
     
                With pb
                      .BorderStyle = BorderStyle.Fixed3D
                      .Size = New Size(200, 200)
                      .Location = New Point(50, 150)
                End With
     
     
                FrmPage1.Panel1.Controls.Add(pb)
                FrmPage1.Show()
    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
     Private Sub PbDocument1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PbDocument1.MouseDown, PbDocument2.MouseDown
     
                If e.Button = Windows.Forms.MouseButtons.Left Then
                      x = e.X
                      y = e.Y
                End If
     
          End Sub
     
          Private Sub PbDocument1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PbDocument1.MouseMove, PbDocument2.MouseMove
     
                If e.Button = Windows.Forms.MouseButtons.Left And sender.name = "PbDocument1" Then
                      PbDocument1.Left += (e.X - x)
                      PbDocument1.Top += (e.Y - y)
                End If
     
                If e.Button = Windows.Forms.MouseButtons.Left And sender.name = "PbDocument2" Then
                      PbDocument2.Left += (e.X - x)
                      PbDocument2.Top += (e.Y - y)
                End If
     
          End Sub
    Une idée peut être

  5. #5
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Mais quoi? Tu n'arrives pas à faire que tes picturebox se déplacent en clikant dessus ?
    Si c'est ca je te proposerait une solution: créer une classe héritant de la classe PictureBox et rajoute tes méthodes PictureBox_MouseDown et PictureBox_MouseMove à l'intérieur:

    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
     
    Public Class MaPictureBox
        Inherits PictureBox
     
        Dim x, y As Integer
     
        Private Sub Me_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
            If e.Button = Windows.Forms.MouseButtons.Left Then
                x = e.X
                y = e.Y
            End If
        End Sub
     
        Private Sub Me_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
            If e.Button = Windows.Forms.MouseButtons.Left Then
                sender.Left += (e.X - x)
                sender.Top += (e.Y - y)
            End If
        End Sub
     
    End Class
    ensuite, au moment de créer tes PictureBox, créer plutôt des MaPictureBox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            Dim pict As New MaPictureBox With {
                .BackColor = Color.Green,
                .Width = 100,
                .Height = 100}
     
            Dim frm2 As New Form2
            frm2.Controls.Add(pict)
            frm2.Show()
    Est ce que ça répond à ton problème?

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par mic.carrer Voir le message
    Mais quoi? Tu n'arrives pas à faire que tes picturebox se déplacent en clikant dessus ?
    Si c'est ca je te proposerait une solution: créer une classe héritant de la classe PictureBox et rajoute tes méthodes PictureBox_MouseDown et PictureBox_MouseMove à l'intérieur
    Y'a t il une quelconque utilité de créer une classe héritant de PictureBox si c'est uniquement pour s'abonner aux évènements MouseDown et MouseMove?

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

Discussions similaires

  1. Creation de liste d'objet dynamique
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 05/12/2008, 14h08
  2. [C#] Accéder à un objet dynamiquement ?
    Par webtheque dans le forum ASP.NET
    Réponses: 10
    Dernier message: 14/04/2005, 15h54
  3. [Reflection] Créer un tableau d'objets dynamiquement.
    Par salome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 25/03/2005, 18h59
  4. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00
  5. Evenement sur objet dynamique
    Par CanardJM dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 19/11/2004, 13h56

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