다음을 통해 공유


방법: 구성 요소 컨테이너 확장

업데이트: 2007년 11월

구성 요소 컨테이너는 완전히 확장할 수 있습니다. Container 클래스에서 상속하고 속성이나 메서드를 추가할 수 있으며 사용자 지정 기능을 추가하여 규칙을 적용하고 기본 메서드 또는 컨테이너에서 통합할 기타 사용자 지정 기능을 재정의할 수 있습니다. 컨테이너와 컨테이너를 확장하는 방법에 대한 자세한 내용은 컨테이너, 사이트 및 구성 요소를 참조하십시오.

기본 클래스를 확장하는 것처럼 Container를 확장할 수 있습니다. 기본 클래스의 속성을 상속하는 클래스를 만들고 확장할 기본 메서드를 재정의하고 필요한 속성이나 메서드를 추가할 수 있습니다. 그런 다음 새 클래스를 표준 Container처럼 사용하고 인코딩된 새 기능을 모두 사용할 수 있습니다.

컨테이너 기본 클래스를 확장하려면

  1. Container 클래스에서 상속되는 새 클래스를 선언합니다.

    Public Class myContainer
       Inherits System.ComponentModel.Container
    End Class
    
    class myContainer: System.ComponentModel.Container
    {
    }
    
    class myContainer
       extends System.ComponentModel.Container
    {
    }
    
  2. 기본 클래스 메서드를 재정의하여 기능을 추가합니다. 다음 예제에서는 Add 메서드를 재정의하는 방법을 보여 줍니다.

    참고:

    Container에는 실제로 두 개의 Add 오버로드가 있으며 이 예제에서는 각 오버로드를 제공할 수 있습니다.

    ' Because Add is overloaded, this line includes the Overloads keyword.
    Public Overloads Overrides Sub Add(ByVal component As _
       System.ComponentModel.IComponent)
       ' Determines if the component can be added to the container.
       If TypeOf component Is Widget Then
          ' Calls the base Add function to add the component.
          MyBase.Add(component)
       Else
          ' Throws an exception.
          Throw New NonWidgetException()
       End If
    End Sub
    
    public override void Add(System.ComponentModel.IComponent component)
    {
       if (component is Widget)
          base.Add(component);
       else 
       {
          throw(new NonWidgetException());
       }
    }
    
    public void Add(System.ComponentModel.IComponent component)
       throws NonWidgetException
    {
       if ( component instanceof Widget  ) {
          super.Add(component);
       }
       else
       {
          throw new NonWidgetException() ;
       }
    }
    
  3. 새 컨테이너에 통합할 새 속성이나 메서드를 추가합니다. 자세한 내용은 Class 속성, 필드, 메서드를 참조하십시오.

참고 항목

작업

방법: 구성 요소 컨테이너 만들기

개념

컨테이너, 사이트 및 구성 요소

컨테이너와 구성 요소 간 통신

참조

Container