Share via


How to: Pass Objects to Procedures 

Visual Basic allows you to pass objects as arguments to procedures in the same way that you pass other types of arguments. The following procedures demonstrate how.

To pass a new instance of a form to a procedure

  1. Open a project, create a new form named Form1, and add a command button named Button1 to it.

  2. Copy the following code into the form:

    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
    

    You can also pass an object as an argument by reference and then, inside the procedure, set the argument to a new object.

To pass an object reference to a procedure on another form

  1. Open a project and create a form named Form1.

  2. Add a second form named Form2.

  3. Place a picture box control on each form.

  4. Name the picture box on Form1 PictureBox1.

  5. Name the picture box on Form2 PictureBox2.

  6. Assign a picture to PictureBox2 by clicking the Image property in the Properties window. Any small images will work; you can find .bmp and .jpg files in your Windows directory.

  7. Add the following code to 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. Add the following code to the Form1_Click event on 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. Run the application and click Form1. The picture from Form2 appears in the picture box on Form1.

    The Form1_Click event procedure calls the GetPicture procedure in Form2, and passes the empty picture box to it. The GetPicture procedure in Form2 assigns the Image property of the picture box on Form2 to the empty picture box on Form1, and the image from Form2 is displayed on Form1.

See Also

Concepts

Resource Management

Other Resources

Object-Oriented Programming in Visual Basic
Programming with Components