Partager via


Comment : passer des objets aux procédures

Mise à jour : novembre 2007

Visual Basic vous permet de passer des objets en tant qu'arguments à des procédures comme vous passez d'autres types d'arguments. Les procédures suivantes vous montrent comment.

Pour passer une nouvelle instance d'un formulaire à une procédure

  1. Ouvrez un projet, créez un formulaire appelé Form1 et ajoutez un bouton de commande appelé Button1.

  2. Copiez le code suivant dans le formulaire :

    Private Sub Button1_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
    
        Dim newForm As New Form1
        newForm.Show()
        CenterForm(newForm)
    End Sub
    
    Sub CenterForm(ByVal TheForm As Form)
        ' Centers the form on the screen.
        Dim RecForm As Rectangle = Screen.GetBounds(TheForm)
        TheForm.Left = CInt((RecForm.Width - TheForm.Width) / 2)
        TheForm.Top = CInt((RecForm.Height - TheForm.Height) / 2)
    End Sub
    

    Vous pouvez également passer un objet comme argument par référence puis, dans la procédure, définir l'argument comme un nouvel objet.

Pour passer une référence d'objet à une procédure d'un autre formulaire

  1. Ouvrez un projet et créez un formulaire appelé Form1.

  2. Ajoutez un second formulaire appelé Form2.

  3. Placez un contrôle de zone d'image dans chaque formulaire.

  4. Donnez à la zone d'image du formulaire Form1 le nom PictureBox1.

  5. Donnez à la zone d'image du formulaire Form2 le nom PictureBox2.

  6. Assignez une image à PictureBox2 en cliquant sur la propriété Image dans la fenêtre Propriétés. Vous pouvez utiliser n'importe quelle petite image ; vous trouverez des fichiers .bmp et .jpg dans votre répertoire Windows.

  7. Ajoutez le code suivant à Form2:

    Public Sub GetPicture(ByVal x As PictureBox)
        Dim objX As PictureBox
        ' Assign the passed-in picture box to an object variable.
        objX = x
        ' Assign the value of the Picture property to the Form1 picture box.
        objX.Image = PictureBox2.Image
    End Sub
    
  8. Ajoutez le code suivant à l'événement Form1_Click sur Form1 :

    Protected Sub Form1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs)
        Dim newForm2 As New Form2
        newForm2.GetPicture(PictureBox1)
    End Sub
    
  9. Exécutez l'application et cliquez sur Form1. L'image de Form2 apparaît dans la zone d'image de Form1.

    La procédure événementielle Form1_Click appelle la procédure GetPicture dans Form2 et lui passe la zone d'image vide. La procédure GetPicture de Form2 assigne la propriété Image de la zone d'image de Form2 à la zone d'image vide de Form1, et l'image de Form2 est affichée dans Form1.

Voir aussi

Concepts

Gestion des ressources

Autres ressources

Programmation orientée objet dans Visual Basic

Programmation à l'aide de composants