如何:将对象传递给过程
更新:2007 年 11 月
Visual Basic 允许您像传递其他类型的参数那样将对象以参数形式传递给过程。下面的过程说明如何做。
将窗体的新实例传递给过程
打开一个项目,创建一个名为 Form1 的新窗体,将名为 Button1 的命令按钮添加到该窗体。
将下面的代码复制到窗体中:
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
也可以通过引用将对象作为参数传递,然后在过程内部将该参数设置为新的对象。
将对象引用传递给另一个窗体上的过程
打开一个项目,并创建一个名为 Form1 的窗体。
添加另一个名为 Form2 的窗体。
在每个窗体上各放置一个图片框 (PictureBox) 控件。
将 Form1 上的图片框命名为 PictureBox1。
将 Form2 上的图片框命名为 PictureBox2。
通过在“属性”窗口中单击“Image”属性,将一个图片分配给 PictureBox2。任何小图像都行;在 Windows 目录下可以找到 .bmp 和 .jpg 文件。
将下列代码添加到 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
将下面的代码添加到 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
运行应用程序然后单击 Form1。Form2 上的图片出现在 Form1 上的图片框中。
Form1_Click 事件过程调用 Form2 中的 GetPicture 过程,然后将空的图片框传递给它。Form2 中的 GetPicture 过程将 Form2 上图片框的 Image 属性分配给 Form1 上的空图片框,然后 Form2 中的图像显示在 Form1 上。