Поделиться через


Практическое руководство. Передача объектов в процедуры

Обновлен: Ноябрь 2007

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. Поместите элемент управления поля изображения на каждую форму.

  4. Присвойте полю изображения на форме Form1 имя PictureBox1.

  5. Присвойте полю изображения на форме Form2 имя PictureBox2.

  6. Присвойте рисунок полю PictureBox2, щелкнув свойство Image в окне Свойства. Допускается вставка любых небольших изображений. Файлы bmp и jpg можно найти в каталоге Windows.

  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_Click формы 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. Запустите приложение и щелкните Form1. Изображение из Form2 отображается в графическом окне на Form1.

    Процедура обработки события Form1_Click вызывает процедуру GetPicture в Form2 и передает в нее пустое поле изображения. Процедура GetPicture на форме Form2 присваивает свойству Image графического окна на форме Form2 пустое поле изображения на Form1. Изображение из Form2 отображается на Form1.

См. также

Основные понятия

Управление ресурсами

Другие ресурсы

Объектно-ориентированное программирование в Visual Basic

Программирование с использованием компонентов