如何:将对象传递给过程

更新:2007 年 11 月

Visual Basic 允许您像传递其他类型的参数那样将对象以参数形式传递给过程。下面的过程说明如何做。

将窗体的新实例传递给过程

  1. 打开一个项目,创建一个名为 Form1 的新窗体,将名为 Button1 的命令按钮添加到该窗体。

  2. 将下面的代码复制到窗体中:

    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
    

    也可以通过引用将对象作为参数传递,然后在过程内部将该参数设置为新的对象。

将对象引用传递给另一个窗体上的过程

  1. 打开一个项目,并创建一个名为 Form1 的窗体。

  2. 添加另一个名为 Form2 的窗体。

  3. 在每个窗体上各放置一个图片框 (PictureBox) 控件。

  4. 将 Form1 上的图片框命名为 PictureBox1。

  5. 将 Form2 上的图片框命名为 PictureBox2。

  6. 通过在“属性”窗口中单击“Image”属性,将一个图片分配给 PictureBox2。任何小图像都行;在 Windows 目录下可以找到 .bmp 和 .jpg 文件。

  7. 将下列代码添加到 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. 将下面的代码添加到 Form1 上的 Form1_Click 事件中:

    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. 运行应用程序然后单击 Form1。Form2 上的图片出现在 Form1 上的图片框中。

    Form1_Click 事件过程调用 Form2 中的 GetPicture 过程,然后将空的图片框传递给它。Form2 中的 GetPicture 过程将 Form2 上图片框的 Image 属性分配给 Form1 上的空图片框,然后 Form2 中的图像显示在 Form1 上。

请参见

概念

资源管理

其他资源

Visual Basic 中面向对象的编程

使用组件编程