다음을 통해 공유


구성 요소 컨트롤

업데이트: 2007년 11월

사용자 정의 컨트롤을 구성하는 컨트롤, 즉 구성 요소 컨트롤은 사용자 지정 그래픽 렌더링을 수행할 때 사용 범위가 상대적으로 제한됩니다. 모든 Windows Forms 컨트롤은 자신의 OnPaint 메서드를 통해 자신의 렌더링을 처리합니다. 메서드는 protected로 선언되므로 개발자가 액세스할 수 없으며 따라서 컨트롤이 칠해질 때 실행되는 것을 막을 수 없습니다. 그러나 이런 이유로 구성 요소 컨트롤의 모양에 영향을 주는 코드를 추가할 수 없는 것은 아닙니다. 이벤트 처리기를 추가하면 추가적인 렌더링을 수행할 수 있습니다. 예를 들어 MyButton이라는 단추를 포함하는 UserControl을 작성한다고 가정합니다. Button 클래스에서 제공되는 것 외에 추가적인 렌더링을 제공하려면 사용자 정의 컨트롤에 다음과 같은 코드를 추가합니다.

Public Sub MyPaint(ByVal sender as Object, e as PaintEventArgs) Handles _
   MyButton.Paint
   'Additional rendering code goes here
End Sub
// Add the event handler to the button's Paint event.
MyButton.Paint += 
   new System.Windows.Forms.PaintEventHandler (this.MyPaint);
// Create the custom painting method.
protected void MyPaint (object sender, 
System.Windows.Forms.PaintEventArgs e)
{
   // Additional rendering code goes here.
}
// Add the event handler to the button's Paint event.
MyButton.add_Paint(new 
System.Windows.Forms.PaintEventHandler(this.MyPaint));
// Create the custom painting method.
protected void MyPaint(System.Object sender,
   System.Windows.Forms.PaintEventArgs e)
{
// Additional rendering code goes here.
}
참고:

TextBox와 같은 일부 Windows Forms 컨트롤은 Windows에서 직접 칠합니다. 이러한 인스턴스에서는 OnPaint 메서드가 호출되지 않으므로 위의 예제는 호출되지 않습니다.

이 예제에서는 MyButton.Paint 이벤트가 실행될 때마다 호출되어 컨트롤에 그래픽 표현을 추가하는 메서드를 만듭니다. 여기에서는 MyButton.OnPaint가 실행되므로 사용자 지정 칠하기뿐만 아니라 일반적으로 단추를 통해 수행되는 모든 칠하기도 수행됩니다. GDI+ 기술과 사용자 지정 렌더링에 대한 자세한 내용은 GDI+를 사용하여 그래픽 이미지 만들기를 참조하십시오. 컨트롤에 고유한 표현을 제공하려면 상속된 컨트롤을 만들고 이 컨트롤에 필요한 사용자 지정 렌더링 코드를 작성하는 것이 가장 좋습니다. 자세한 내용은 사용자가 그린 컨트롤을 참조하십시오.

참고 항목

작업

방법: 그리는 데 필요한 그래픽 개체 만들기

개념

사용자가 그린 컨트롤

사용자 지정 컨트롤의 종류

참조

UserControl

OnPaint