다음을 통해 공유


연습: 시각적 상속 설명

업데이트: 2010년 9월

시각적 상속을 사용하여 기본 폼의 컨트롤을 보고 새 컨트롤을 추가할 수 있습니다. 이 연습에서는 기본 폼을 만들어 클래스 라이브러리로 컴파일합니다. 이 클래스 라이브러리를 다른 프로젝트에 가져오고 기본 폼에서 상속하는 새 폼을 만듭니다. 이 연습을 통해 다음과 같은 작업 방법을 배웁니다.

  • 기본 폼을 포함하는 클래스 라이브러리 프로젝트를 만듭니다.

  • 기본 폼의 파생 클래스가 수정할 수 있는 속성이 있는 단추를 추가합니다.

  • 기본 폼의 상속자가 수정할 수 없는 단추를 추가합니다.

  • BaseForm에서 상속되는 폼을 포함하는 프로젝트를 만듭니다.

결국 이 연습에서는 상속된 폼에서 개인 컨트롤과 보호된 컨트롤 간의 차이를 설명합니다.

참고

표시되는 대화 상자와 메뉴 명령은 활성 설정이나 버전에 따라 도움말에서 설명하는 것과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.

경고

일부 컨트롤은 기본 폼에서의 시각적 상속을 지원하지 않습니다. 다음 컨트롤은 이 연습에서 설명하는 시나리오를 지원하지 않습니다.

    WebBrowser

    ToolStrip

    ToolStripPanel

    TableLayoutPanel

    FlowLayoutPanel

    DataGridView

상속된 폼의 이러한 컨트롤은 사용하는 한정자(private, protected 또는 public)에 관계없이 항상 읽기 전용입니다.

시나리오 단계

첫 단계는 기본 폼을 만드는 것입니다.

기본 폼을 포함하는 클래스 라이브러리 프로젝트를 만들려면

  1. 파일 메뉴에서 새로 만들기프로젝트를 차례로 선택하여 새 프로젝트 대화 상자를 엽니다.

  2. BaseFormLibrary라는 Windows Forms 응용 프로그램을 만듭니다. 자세한 내용은 방법: 새 Windows Forms 응용 프로그램 프로젝트 만들기를 참조하십시오.

  3. 표준 Windows Forms 응용 프로그램 대신 클래스 라이브러리를 만들려면 솔루션 탐색기에서 BaseFormLibrary 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.

  4. 프로젝트 속성에서 출력 형식Windows 응용 프로그램에서 클래스 라이브러리로 변경합니다.

  5. 파일 메뉴에서 모두 저장을 선택하여 프로젝트와 파일을 기본 위치에 저장합니다.

다음 두 프로시저는 단추를 기본 폼에 추가합니다. 시각적 상속을 설명하기 위해 Modifiers 속성을 설정하여 단추에 각기 다른 액세스 수준을 제공합니다.

기본 폼의 상속자가 수정할 수 있는 단추를 추가하려면

  1. 디자이너에서 Form1을 엽니다.

  2. 도구 상자모든 Windows Forms 탭에서 단추를 두 번 클릭하여 단추를 폼에 추가합니다. 마우스를 사용하여 Button 컨트롤을 배치하고 크기를 조정합니다.

  3. 속성 창에서 Button 컨트롤의 다음 속성을 설정합니다.

    • Text 속성을 Say Hello로 설정합니다.

    • (Name) 속성을 btnProtected로 설정합니다.

    • Modifiers 속성을 Protected로 설정합니다. 이렇게 하면 Form1에서 상속하는 폼이 btnProtected의 속성을 수정할 수 있습니다.

  4. Say Hello 단추를 두 번 클릭하여 Click 이벤트에 대한 이벤트 처리기를 추가합니다.

  5. 다음 코드 줄을 이벤트 처리기에 추가합니다.

    MessageBox.Show("Hello, World!")
    
    MessageBox.Show("Hello, World!");
    

기본 폼의 상속자가 수정할 수 없는 단추를 추가하려면

  1. 코드 편집기 위의 Form1.vb [디자인], Form1.cs [디자인] 또는 Form1.jsl [디자인] 탭을 클릭하거나 F7 키를 눌러 디자인 뷰로 전환합니다.

  2. 둘째 단추를 추가하고 다음과 같이 속성을 설정합니다.

    • Text 속성을 Say Goodbye로 설정합니다.

    • (Name) 속성을 btnPrivate로 설정합니다.

    • Modifiers 속성을 Private로 설정합니다. 이렇게 하면 Form1에서 상속하는 폼이 btnPrivate의 속성을 수정할 수 없습니다.

  3. Say Goodbye 단추를 두 번 클릭하여 Click 이벤트에 대한 이벤트 처리기를 추가합니다. 다음 코드 줄을 이벤트 프로시저에 배치합니다.

    MessageBox.Show("Goodbye!")
    
    MessageBox.Show("Goodbye!");
    
  4. 빌드 메뉴에서 BaseForm 라이브러리 빌드를 선택하여 클래스 라이브러리를 빌드합니다.

    라이브러리를 빌드했으면 방금 만든 폼에서 상속하는 새 프로젝트를 만들 수 있습니다.

기본 폼에서 상속하는 폼을 포함하는 프로젝트를 만들려면

  1. 파일 메뉴에서 추가새 프로젝트를 차례로 선택하여 새 프로젝트 추가 대화 상자를 엽니다.

  2. InheritanceTest라는 Windows Forms 응용 프로그램을 만듭니다. 자세한 내용은 방법: 새 Windows Forms 응용 프로그램 프로젝트 만들기를 참조하십시오.

상속된 폼을 추가하려면

  1. 솔루션 탐색기에서 InheritanceTest 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 선택한 다음 새 항목을 선택합니다.

  2. 새 항목 추가 대화 상자에서 Windows Forms 범주를 선택한 다음(범주 목록이 있는 경우) 상속된 폼 템플릿을 선택합니다.

  3. 기본 이름 Form2를 그대로 두고 추가를 클릭합니다.

  4. 상속 선택 대화 상자의 BaseFormLibrary 프로젝트에서 Form1을 상속할 폼으로 선택하고 확인을 클릭합니다.

    이렇게 하면 BaseFormLibrary의 폼에서 파생되는 폼이 InheritanceTest 프로젝트에 만들어집니다.

  5. 상속된 폼(Form2)이 디자이너에서 아직 열려 있지 않으면 두 번 클릭하여 엽니다.

    디자이너에서 상속된 단추의 위쪽 모퉁이에는 상속된 단추임을 나타내는 기호(VisualBasicInheritanceSymbol 스크린 샷)가 표시됩니다.

  6. Say Hello 단추를 선택하고 크기 조정 핸들을 관찰합니다. 이 단추는 보호되기 때문에 상속자가 이동, 크기 조정, 캡션 변경 및 기타 수정 작업을 수행할 수 있습니다.

  7. Say Goodbye 단추를 선택하고 크기 조정 핸들이 없는지 확인합니다. 또한 속성 창에서 이 단추의 속성은 수정할 수 없음을 나타내는 회색으로 표시됩니다.

  8. Visual C#을 사용 중인 경우 다음을 수행합니다.

    1. 솔루션 탐색기에서 InheritanceTest 프로젝트의 Form1을 마우스 오른쪽 단추로 클릭한 다음 삭제를 선택합니다. 메시지 상자가 표시되면 확인을 클릭하여 삭제를 확인합니다.

    2. Program.cs 파일을 열고 Application.Run(new Form1()); 줄을 Application.Run(new Form2());으로 변경합니다.

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

  10. 솔루션 탐색기에서 InheritanceTest 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.

  11. InheritanceTest 속성 페이지에서 시작 개체가 상속된 폼(Form2)이 되도록 설정합니다.

  12. F5 키를 눌러 응용 프로그램을 실행하고 상속된 폼의 동작을 관찰합니다.

다음 단계

사용자 정의 컨트롤에 대한 상속은 거의 비슷한 방식으로 동작합니다. 새 클래스 라이브러리 프로젝트를 열고 사용자 정의 컨트롤을 추가합니다. 구성 요소 컨트롤을 배치하고 프로젝트를 컴파일합니다. 다른 새 클래스 라이브러리 프로젝트를 열고 컴파일된 클래스 라이브러리에 대한 참조를 추가합니다. 또한 새 항목 추가 대화 상자를 사용하여 상속된 컨트롤을 프로젝트에 추가하고 상속 선택을 사용해 봅니다. 사용자 정의 컨트롤을 추가한 다음 Inherits(Visual C#에서는 :) 문을 변경합니다. 자세한 내용은 방법: Windows Forms 상속을 참조하십시오.

참고 항목

작업

방법: Windows Forms 상속

참조

상속 선택 대화 상자

Windows Forms 연습

기타 리소스

Windows Forms 시각적 상속

Windows Forms

변경 기록

날짜

변경 내용

이유

2010년 9월

단계를 수정했습니다.

고객 의견