Eventos alterados por propriedade
Se você quiser que o controle envie notificações quando uma propriedade chamada PropertyName mudar, defina um evento chamado PropertyNameChanged
e um método chamado On
PropertyNameChanged
que gera o evento. A convenção de nomenclatura nos Windows Forms é acrescentar a palavra Changed ao nome da propriedade. O tipo de delegado de evento associado para eventos alterados por propriedade é , e o tipo de dados de evento é EventHandlerEventArgs. A classe Control base define muitos eventos alterados por propriedade, como BackColorChanged, , FontChangedBackgroundImageChanged, LocationChangede outros. Para obter informações secundárias sobre eventos, consulte Eventos e Eventos em controles dos Windows Forms.
Eventos de propriedade alterada são úteis porque permitem que os consumidores de um controle anexem manipuladores de eventos que respondem à alteração. Se o seu controle precisa responder a um evento de propriedade alterada que ele emitirá, substitua o método On
PropertyNameChanged
correspondente em vez de associar um delegado ao evento. Um controle normalmente responde a um evento de propriedade alterada atualizando outras propriedades ou redesenhando a superfície de alguns ou todos os desenhos.
O exemplo a seguir mostra como o controle personalizado responde a FlashTrackBar
alguns dos eventos de propriedade alterada que ele herda do Control. Para um exemplo completo, consulte Como criar um controle dos Windows Forms que mostre o progresso.
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;
}
}
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
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de