다음을 통해 공유


연습: 장치용 사용자 정의 컨트롤 작성

업데이트: 2007년 11월

이 연습에서는 컨트롤 라이브러리를 만들고 여기에 넣을 사용자 정의 컨트롤을 만듭니다. Windows Forms 컨트롤을 재사용 가능한 하나의 단위로 결합한 사용자 정의 컨트롤과, 표준 컨트롤을 통해서는 사용할 수 없는 UI나 기능이 요구되는 사용자 지정 컨트롤을 구분해서 설명합니다.

이 연습에 나오는 사용자 정의 컨트롤은 장치에 표시할 간단한 시계이며 연습: Visual Basic에서 합성 컨트롤 제작이나 연습: Visual C#에서 합성 컨트롤 제작과 같은 비슷한 데스크톱 연습을 모델링한 것입니다.

이 연습은 다음과 같은 네 가지 주요 작업으로 구성됩니다.

  • 컨트롤 라이브러리와 컨트롤 만들기

  • 라이브러리와 컨트롤 이름 바꾸기

  • 컨트롤에 구성 요소 추가

  • 장치 에뮬레이터에서 컨트롤 테스트

이 연습에는 Visual Basic이나 Visual C#을 사용할 수 있습니다. 두 언어 모두 언어별 확장명만 다르고 파일 이름은 동일하며 filename.vb|cs에서와 같이 사용할 언어의 확장명을 선택하도록 세로줄이 표시됩니다.

참고:

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

이 연습은 Visual Basic 개발 설정 및 Visual C# 개발 설정을 사용하여 작성했습니다.

사전 요구 사항

없음

대상 장치 선택

솔루션을 배포할 때 장치 선택 메시지가 표시되도록 하려면 다음 단계를 수행해야 합니다.

배포할 때 장치 선택 메시지를 표시하려면

  1. 도구 메뉴에서 옵션을 클릭하고 장치 도구를 확장한 다음 일반을 클릭합니다.

    장치 도구가 표시되지 않으면 옵션 대화 상자 아래쪽에 있는 모든 설정 표시를 선택합니다.

  2. 장치 프로젝트 배포 전에 장치 선택 항목 표시 확인란을 선택합니다.

프로젝트 만들기

새 프로젝트에 지정한 이름은 루트 네임스페이스와 어셈블리 이름으로도 설정됩니다.

컨트롤 라이브러리와 컨트롤을 만들려면

  1. (Visual Basic) 파일 메뉴에서 새 프로젝트를 클릭합니다.

    —또는—

    (Visual C#) 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

  2. 새 프로젝트 대화 상자의 프로젝트 형식 창에서 Visual Basic 또는 Visual C#을 선택한 다음 스마트 장치를 클릭합니다.

    원하는 언어가 처음에 나타나지 않으면 다른 언어를 확장합니다. 이 화면은 개발 설정에 따라 달라집니다.

  3. 템플릿 창에서 스마트 장치 프로젝트를 클릭합니다.

  4. 이름 상자에 ctlDevClockLib를 입력한 다음 확인을 클릭합니다.

  5. (Visual C#에만 해당) 위치 상자에서 프로젝트 파일을 저장할 위치를 확인하고 확인을 클릭합니다.

  6. 대상 플랫폼 드롭다운에서 Pocket PC 2003을 선택합니다.

  7. .NET Compact Framework 버전 드롭다운에서 .NET Compact Framework version 2.0을 선택합니다.

  8. 템플릿 창에서 컨트롤 라이브러리를 클릭한 다음 확인을 클릭합니다.

    구성 요소 디자이너가 나타납니다.

프로젝트 이름, 루트 네임스페이스 및 어셈블리 이름(ctlDevClockLib)을 이미 지정했습니다. 그러나 프로젝트 내 구성 요소의 이름은 Visual Studio에서 할당한 기본 이름(예: UserControl1)이 됩니다. 일반적으로 이 이름을 좀더 의미 있는 표현으로 변경할 수 있습니다.

라이브러리와 컨트롤의 이름을 바꾸려면

  1. 솔루션 탐색기에서 UserControl1.vb|cs를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  2. 파일 이름을 ctlDevClock.vb|cs로 변경합니다.

  3. (Visual C# 전용) 이 코드 요소에 대한 모든 참조의 이름을 바꿀지 여부를 묻는 메시지 상자에서 예를 클릭합니다.

    속성 창에서의 이름 변경 내용이 클래스 이름 및 생성자와 같은 다른 참조로 전파됩니다.

다음으로는 도구 상자에서 구성 요소를 추가하여 사용자 정의 컨트롤에 기능과 사용자 상호 작용을 제공합니다. 이 연습에서는 Timer 컨트롤을 추가하여 시스템 시간에 액세스하고 Label 컨트롤을 추가하여 시간을 표시합니다.

구성 요소를 추가하고 속성을 변경하려면

  1. 도구 상자에서 Label을 두 번 클릭합니다.

    구성 요소 디자이너의 사용자 정의 컨트롤에 label 컨트롤이 추가됩니다.

  2. label 컨트롤의 속성 창에서 다음 작업을 수행합니다.

속성

다음으로 변경

Name

lblDisplay

Text

(비어 있음)

TextAlign

TopCenter

Font.Size

14

  1. 도구 상자에서 Timer를 두 번 클릭합니다.

    Timer 컨트롤이 구성 요소 트레이에 표시됩니다.

  2. timer 컨트롤의 속성 창에서 다음 작업을 수행합니다.

속성

다음으로 변경

Interval

1000

Enabled

True

다음 단계에서는 이벤트 처리기를 추가하여 Label 컨트롤에 클록 틱을 표시합니다.

이벤트 처리기를 추가하려면

  1. 구성 요소 트레이에서 Timer1(Visual Basic) 또는 timer1(C#)을 두 번 클릭하여 Tick 이벤트에서 코드 편집기를 엽니다.

  2. (Visual Basic) 다음 이벤트 처리 코드를 삽입합니다.

    lblDisplay.Text = Format(Now, "hh:mm:ss")
    

    —또는—

    (Visual C#)

    lblDisplay.Text = DateTime.Now.ToLongTimeString();
    
  3. (Visual Basic) 액세스 한정자를 Private에서 Protected로 변경하고 Overridable 키워드를 추가하여 처리기 코드를 다음과 비슷하게 만듭니다.

    Protected Overridable Sub Timer1_Tick(ByVal sender As Object, _
       ByVal e As System.EventArgs) Handles Timer1.Tick
       ' Causes the label to display the current time  
       lblDisplay.Text = Format(Now, "hh:mm:ss")
    End Sub
    

    —또는—

    (Visual C#) 액세스 한정자를 private에서 protected로 변경하고 virtual 키워드를 추가하여 처리기 코드를 다음과 비슷하게 만듭니다.

    protected virtual void timer1_Tick(object sender, System.EventArgs
       e)
    {
       // Causes the label to display the current time.
       lblDisplay.Text = DateTime.Now.ToLongTimeString(); 
    }
    
  4. 파일 메뉴에서 모두 저장을 클릭합니다.

  5. (Visual Basic에만 해당) 프로젝트 저장 대화 상자에서 프로젝트를 ctlDevClockLib로 원하는 위치에 저장합니다.

컨트롤 테스트

이 간단한 장치 응용 프로그램을 컨트롤의 테스트 컨테이너로 사용할 수 있습니다.

컨트롤을 빌드하고 테스트 컨테이너를 만들려면

  1. 빌드 메뉴에서 빌드나 ctlDevClockLib 빌드를 클릭합니다.

  2. 파일 메뉴에서 추가를 가리킨 다음 새 프로젝트를 클릭합니다.

  3. 새 프로젝트 추가 대화 상자의 프로젝트 형식 창에서 스마트 장치를 클릭한 다음 템플릿 창에서 스마트 장치 프로젝트를 클릭합니다.

  4. 이름 상자에 Test를 입력한 다음 확인을 클릭합니다.

  5. 새 스마트 장치 프로젝트 추가 대화 상자의 대상 플랫폼 드롭다운에서 Pocket PC 2003을 선택하고, .NET Compact Framework 버전 드롭다운에서 .NET Compact Framework version 2.0을 선택하고, 템플릿 창에서 장치 응용 프로그램을 클릭한 다음 확인을 클릭합니다.

  6. 솔루션 탐색기에서 Test 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 시작 프로젝트로 설정을 클릭합니다.

  7. Test 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.

  8. 참조 추가 대화 상자에서 프로젝트 탭을 클릭한 다음 ctlDevClockLib를 두 번 클릭합니다.

  9. 도구 상자에서 ctlDevClockLib 구성 요소 탭을 찾은 다음 ctlDevClock 구성 요소를 두 번 클릭합니다.

    컨트롤이 디자이너에 로드됩니다.

  10. 디버그 메뉴에서 시작 또는 디버깅 시작을 클릭합니다.

  11. 배포 대화 상자에서 Pocket PC 2003 SE 에뮬레이터를 선택한 다음 배포를 클릭합니다.

참고 항목

개념

컨트롤 형식 권장 사항

기타 리소스

디자인할 때 Windows Forms 컨트롤 개발