Visual Basic에서 구성 요소 만들기 및 사용Creating and Using Components in Visual Basic

구성 요소System.ComponentModel.IComponent 인터페이스를 구현하는 클래스이거나 IComponent를 구현하는 클래스에서 직접 또는 간접적으로 파생되는 클래스입니다.A component is a class that implements the System.ComponentModel.IComponent interface or that derives directly or indirectly from a class that implements IComponent. .NET Framework 구성 요소는 재사용 가능한가, 다른 개체와 상호 작용할 수 및 외부 리소스 및 디자인 타임 지원에 대 한 제어를 제공 하는 개체입니다.A .NET Framework component is an object that is reusable, can interact with other objects, and provides control over external resources and design-time support.

구성 요소의 중요한 기능은 디자인할 수 있다는 것입니다. 즉, Visual Studio 통합 개발 환경에서 구성 요소인 클래스를 사용할 수 있습니다.An important feature of components is that they are designable, which means that a class that is a component can be used in the Visual Studio Integrated Development Environment. 구성 요소는 도구 상자에 추가하고, 양식에 끌어서 놓고, 디자인 화면에서 조작할 수 있습니다.A component can be added to the Toolbox, dragged and dropped onto a form, and manipulated on a design surface. 구성 요소에 대 한 기본 디자인 타임 지원을 않으며.NET Framework에 기본 제공 되는 구성 요소 개발자는 기본 디자인 타임 기능을 활용 하기 위해 추가 작업을 수행할 필요가 없습니다.Notice that base design-time support for components is built into the .NET Framework; a component developer does not have to do any additional work to take advantage of the base design-time functionality.

컨트롤과 구성 요소는 둘 다 디자인 가능하다는 점에서 비슷합니다.A control is similar to a component, as both are designable. 그러나 컨트롤은 사용자 인터페이스를 제공하지만 구성 요소는 제공하지 않습니다.However, a control provides a user interface, while a component does not. 컨트롤은 기본 컨트롤 클래스인 Control 또는 Control 중 하나에서 파생되어야 합니다.A control must derive from one of the base control classes: Control or Control.

구성 요소를 만들어야 하는 경우When to Create a Component

클래스가 Design Surface(예: Windows Forms 또는 Web Forms 디자이너)에서 사용되지만 사용자 인터페이스가 없는 경우 클래스는 구성 요소로서, IComponent를 구현하거나 IComponent를 직접 또는 간접적으로 구현하는 클래스에서 파생되어야 합니다.If your class will be used on a design surface (such as the Windows Forms or Web Forms Designer) but has no user interface, it should be a component and implement IComponent, or derive from a class that directly or indirectly implements IComponent.

ComponentMarshalByValueComponent 클래스는 IComponent 인터페이스의 기본 구현입니다.The Component and MarshalByValueComponent classes are base implementations of the IComponent interface. 이러한 클래스 간의 기본 차이점은 Component 클래스는 참조에 의해 마샬링되지만 IComponent는 값에 의해 마샬링된다는 점입니다.The main difference between these classes is that the Component class is marshaled by reference, while IComponent is marshaled by value. 다음 목록에서는 구현에 대한 다양한 지침을 제공합니다.The following list provides broad guidelines for implementers.

  • 구성 요소가 참조에 의해 마샬링되어야 하는 경우 Component에서 파생합니다.If your component needs to be marshaled by reference, derive from Component.

  • 구성 요소가 값에 의해 마샬링되어야 하는 경우 MarshalByValueComponent에서 파생합니다.If your component needs to be marshaled by value, derive from MarshalByValueComponent.

  • 단일 상속으로 인해 구성 요소가 기본 구현 중 하나에서 파생될 수 없는 경우 IComponent를 구현합니다.If your component cannot derive from one of the base implementations due to single inheritance, implement IComponent.

구성 요소 클래스Component Classes

System.ComponentModel 네임스페이스는 구성 요소와 컨트롤의 런타임 및 디자인 타임 동작을 구현하는 데 사용되는 클래스를 제공합니다.The System.ComponentModel namespace provides classes that are used to implement the run-time and design-time behavior of components and controls. 이 네임스페이스에는 특성 및 형식 변환기를 구현하고, 데이터 소스에 바인딩하고, 구성 요소 사용을 허가하기 위한 기본 클래스 및 인터페이스가 포함됩니다.This namespace includes the base classes and interfaces for implementing attributes and type converters, binding to data sources, and licensing components.

핵심 구성 요소 클래스는 다음과 같습니다.The core component classes are:

구성 요소 라이선싱에 사용되는 일부 클래스는 다음과 같습니다.Some of the classes used for component licensing are:

구성 요소를 설명 및 유지하는 데 일반적으로 사용되는 클래스입니다.Classes commonly used for describing and persisting components.

  • TypeDescriptor.TypeDescriptor. 구성 요소의 특성, 속성 및 이벤트와 같이, 구성 요소의 특성에 대한 정보를 제공합니다.Provides information about the characteristics for a component, such as its attributes, properties, and events.

  • EventDescriptor.EventDescriptor. 이벤트에 대한 정보를 제공합니다.Provides information about an event.

  • PropertyDescriptor.PropertyDescriptor. 속성에 대한 정보를 제공합니다.Provides information about a property.

컨트롤 및 구성 요소 제작 문제 해결Troubleshooting Control and Component Authoring
일반적인 문제 해결 방법을 설명합니다.Explains how to fix common problems.

참고자료See also