다음을 통해 공유


속성 변경 이벤트

PropertyName이라는 속성이 변경되는 경우 컨트롤에서 알림을 보내게 하려면 PropertyNameChanged 이벤트를 정의하고 해당 이벤트를 발생시키는 OnPropertyNameChanged 메서드를 정의합니다. 속성 이름에 Changed라는 단어를 추가하는 것이 Windows Forms의 명명 규칙입니다. 속성 변경 이벤트에 대한 관련 이벤트 대리자 형식은 EventHandler이며 이벤트 데이터 형식은 EventArgs입니다. 기본 클래스 ControlBackColorChanged, BackgroundImageChanged, FontChanged, LocationChanged와 같은 많은 속성 변경 이벤트를 정의합니다. 이벤트에 대한 배경 정보는 이벤트 처리 및 발생Windows Forms 컨트롤의 이벤트를 참조하십시오.

속성 변경 이벤트는 변경에 응답하는 이벤트 처리기를 컨트롤의 소비자가 연결할 수 있도록 해주기 때문에 유용합니다. 컨트롤에서 발생시킨 속성 변경 이벤트에 응답해야 할 경우 이벤트에 대리자를 연결하는 대신 해당 OnPropertyNameChanged 메서드를 재정의합니다. 대개 컨트롤은 다른 속성을 업데이트하거나 그리기 화면의 일부 또는 전체를 다시 그려서 속성 변경 이벤트에 응답합니다.

다음 예제에서는 FlashTrackBar 사용자 지정 컨트롤이 Control에서 상속한 속성 변경 이벤트에 응답하는 방법을 보여 줍니다. 전체 샘플을 보려면 방법: 진행률을 보여 주는 Windows Forms 컨트롤 만들기를 참조하십시오.

Protected Overrides Sub OnTextChanged(ByVal E As EventArgs)
    MyBase.OnTextChanged(E)
    Invalidate()
End Sub

Protected Overrides Sub OnBackColorChanged(ByVal E As EventArgs)
    MyBase.OnBackColorChanged(E)
    If (baseBackground IsNot Nothing) And Not ShowGradient Then
        baseBackground.Dispose()
        baseBackground = Nothing
    End If
End Sub
protected override void OnTextChanged(EventArgs e) {
    base.OnTextChanged(e);
    Invalidate();
}

protected override void OnBackColorChanged(EventArgs e) {
    base.OnBackColorChanged(e);
    if ((baseBackground != null) && (!showGradient)) {
                baseBackground.Dispose();
                baseBackground = null;
    }
}

참고 항목

개념

Windows Forms 컨트롤의 이벤트

기타 리소스

이벤트 처리 및 발생

Windows Forms 컨트롤의 속성