다음을 통해 공유


방법: 프로시저에 개체 전달

업데이트: 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. 각 폼에 picture box 컨트롤을 배치합니다.

  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의 개체 지향 프로그래밍

구성 요소를 사용한 프로그래밍