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
Ouvrez un projet, créez un formulaire appelé Form1 et ajoutez un bouton de commande appelé Button1.
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
Ouvrez un projet et créez un formulaire appelé Form1.
Ajoutez un second formulaire appelé Form2.
Placez un contrôle de zone d'image dans chaque formulaire.
Donnez à la zone d'image du formulaire Form1 le nom PictureBox1.
Donnez à la zone d'image du formulaire Form2 le nom PictureBox2.
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.
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
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
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.