다음을 통해 공유


자세히 보기: 사용자 정의 컨트롤 사용자 지정

업데이트: 2007년 11월

이 단원에서는 사용자 정의 컨트롤을 더 유용하게 사용자 지정하는 방법을 배웁니다.

레이블 추가

이전 단원에서는 NamesControl 사용자 정의 컨트롤을 테스트하여 예상대로 작동하는 것을 확인했습니다. 이 컨트롤을 몇 가지 방식으로 향상시킬 수 있습니다. 예를 들어, 각 텍스트 상자에 어떤 이름이 입력되었는지 확실하지 않으며 사용자가 세 이름을 모두 입력했는지 확인할 방법도 없습니다.

사용자 정의 컨트롤을 더 유용하게 만들기 위해 각 텍스트 상자를 식별할 레이블을 추가할 수 있습니다. 레이블의 텍스트를 "First Name", "Middle Name" 및 "Last Name"으로 설정할 수도 있지만 나중에 "Middle Initial"로 바꿔야 하는 경우를 대비해야 합니다. 따라서 디자인 타임에 텍스트를 변경하고 각 속성에 기본값을 지정할 수 있도록 레이블 텍스트에 대한 속성을 만드는 것이 더 좋습니다.

실습

사용자 정의 컨트롤을 사용자 지정하려면

  1. 이전 단원에서 만든 NamesUserControl 프로젝트를 엽니다. 프로젝트를 저장하지 않았으면 먼저 이전 단원 사용자 정의 컨트롤 테스트로 돌아가서 저장 절차를 완료합니다.

  2. 솔루션 탐색기에서 NamesControl.vb를 선택한 다음 보기 메뉴에서 디자이너를 선택합니다.

  3. 도구 상자에서 세 개의 Label 컨트롤을 디자이너로 끌어 와서 각 TextBox 위에 하나씩 놓습니다.

  4. 솔루션 탐색기에서 NamesControl.vb를 선택한 다음 보기 메뉴에서 코드를 선택합니다.

  5. 코드 편집기에서 다음 코드를 추가하여 레이블 텍스트 속성을 만듭니다.

    Private text1 As String = "First Name"
    Property Label1Text() As String
        Get
            Return text1
        End Get
        Set(ByVal value As String)
            text1 = value
            Label1.Text = text1
        End Set
    End Property
    Private text2 As String = "Middle Name"
    Property Label2Text() As String
        Get
            Return text2
        End Get
        Set(ByVal value As String)
            text2 = value
            Label2.Text = text2
        End Set
    End Property
    Private text3 As String = "Last Name"
    Property Label3Text() As String
        Get
            Return text3
        End Get
        Set(ByVal value As String)
            text3 = value
            Label3.Text = text3
        End Set
    End Property
    

    그러면 코드에서 레이블 텍스트에 대한 세 개의 Private 변수를 선언하고 선언에는 화면에 표시될 기본값이 포함됩니다.

  6. 코드 편집기의 왼쪽 드롭다운 상자에서 (NamesControl 이벤트)를 선택한 다음 오른쪽 드롭다운 상자에서 Load 이벤트를 선택합니다.

  7. NamesControl_Load 이벤트 처리기에 다음 코드를 추가합니다.

    ' Initialize the three labels
    Me.Label1.Text = Label1Text
    Me.Label2.Text = Label2Text
    Me.Label3.Text = Label3Text
    
  8. 빌드 메뉴에서 솔루션 빌드를 선택합니다.

  9. 솔루션 탐색기에서 Form1.vb를 선택한 다음 보기 메뉴에서 디자이너를 선택합니다.

    레이블에 기본 텍스트가 있는지 확인합니다. 속성 창에서 the Label1Text 속성을 변경하고 컨트롤에서도 변경되는지 확인합니다.

  10. 파일 메뉴에서 닫기를 선택하여 폼 디자이너를 닫습니다.

유효성 검사 추가

다른 유용한 사용자 지정은 입력한 내용이 올바른지 확인하는 유효성 검사 코드를 추가하는 것입니다. 각 TextBox 컨트롤의 유효성을 검사하는 대신 사용자 정의 컨트롤 전체에 대한 유효성 검사 코드를 작성할 수 있습니다.

대부분의 컨트롤에는 포커스가 컨트롤을 벗어날 때 발생하는 Validating 이벤트가 있습니다. 이 이벤트에 유효성 검사 코드를 입력합니다. 이 경우에는 각 텍스트 상자에 이름이 포함되어 있는지 확인하는 코드를 작성해야 할 수 있습니다.

하나 이상의 텍스트 상자가 비어 있으면 사용자에게 이름을 입력하라는 내용의 메시지 상자를 표시할 수 있습니다. 기본 메시지가 포함된 속성을 노출시킬 수 있으며 이 방법을 사용하면 컨트롤 사용자는 메시지를 원하는 메시지로 변경할 수 있습니다.

또한 컨트롤 사용자에 따라 중간 이름을 반드시 입력할 필요가 없다고 생각할 수 있으므로 MiddleName 텍스트 상자의 유효성 검사를 해제할 Boolean 속성을 추가할 수도 있습니다.

실습

유효성 검사를 추가하려면

  1. 코드 편집기에서 유효성 검사에 관련된 두 속성에 대한 코드를 추가합니다. 하나는 중간 이름이 필수인지 지정하고 다른 하나는 유효성 검사 실패 시 표시할 메시지를 지정합니다.

    Private required As Boolean = True
    Property MiddleNameRequired() As Boolean
        Get
            Return required
        End Get
        Set(ByVal value As Boolean)
            required = value
        End Set
    End Property
    Private errormessage As String = "Please enter your name."
    Property ValidationErrorMessage() As String
        Get
            Return errormessage
        End Get
        Set(ByVal value As String)
            errormessage = value
        End Set
    End Property
    
  2. 코드 편집기의 왼쪽 드롭다운 상자에서 (NamesControl 이벤트)를 선택한 다음 오른쪽 드롭다운 상자에서 Validating 이벤트를 선택합니다.

  3. NamesControl_Validating 이벤트 처리기에 다음 코드를 추가합니다.

    If MiddleNameRequired = True Then
        If FirstName.Text = "" Or MiddleName.Text = "" Or _
    LastName.Text = "" Then
            MsgBox(ValidationErrorMessage)
        End If
    Else
        ' Middle name isn't required.
        If FirstName.Text = "" Or LastName.Text = "" Then
            MsgBox(ValidationErrorMessage)
        End If
    End If
    
  4. 빌드 메뉴에서 솔루션 빌드를 선택합니다.

  5. 솔루션 탐색기에서 Form1.vb를 선택한 다음 보기 메뉴에서 디자이너를 선택합니다.

    폼에서 사용자 정의 컨트롤을 선택하고 두 개의 새 속성이 속성 창에 나타나는지 확인합니다.

  6. 도구 상자에서 Button 컨트롤을 폼으로 끌어 옵니다.

  7. F5 키를 눌러 프로그램을 실행합니다.

    이름과 성을 입력하고 중간 이름은 입력하지 않습니다. 단추를 클릭하면 ValidationErrorMessage가 포함된 메시지가 상자가 표시되어야 합니다.

  8. 파일 메뉴에서 모두 저장을 선택하여 작업을 저장합니다.

다음 단계

이 단원에서는 사용자 정의 컨트롤을 더 유용하게 사용자 지정하는 방법을 배웠습니다. 다음 단원에서는 그래픽을 사용하여 그림과 텍스트를 그리는 방법을 배웁니다.

다음 단원: 그림 그리기: 그래픽 사용

참고 항목

작업

사용자 정의 컨트롤 테스트

기타 리소스

표시되는 개체: 사용자 정의 컨트롤 처음 만들기

개체를 사용한 프로그래밍: 클래스 사용

Visual Basic 둘러보기