Eventos de propriedade alterada
Se você deseja que o seu controle para enviar notificações quando uma propriedade chamada PropertyName alterações, definir um evento chamado PropertyNameChanged e um método chamado OnPropertyNameChanged que dispara o evento. A convenção de nomenclatura do Windows Forms é acrescentar a palavra Changed para o nome da propriedade. O tipo de delegado do evento associado para eventos de propriedade alterada é EventHandler, e o tipo de dados de evento é EventArgs. A classe base Control define muitos eventos de propriedade alterada, como BackColorChanged, BackgroundImageChanged, FontChanged, LocationChangede outros. Para obter informações detalhadas sobre eventos, consulte Tratamento e disparada de eventos e Eventos em controles Windows Forms.
Propriedade alterada eventos são úteis porque permitem que os consumidores de um controle anexar manipuladores de eventos para respondem à alteração. Se o seu controle precisa responder a um evento de propriedade alterada gera, substituir o correspondente OnPropertyNameChanged método em vez de anexar um delegado ao evento. Um controle normalmente responde a um evento de propriedade alterada por outras propriedades de atualização ou redesenhando algumas ou todas as sua superfície de desenho.
A exemplo a seguir mostra como o FlashTrackBar controle personalizado responde a alguns dos eventos propriedade alterada, ele herda de Control. For the complete sample, see Como: Criar um controle Windows Forms que mostra o andamento.
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;
}
}
Consulte também
Conceitos
Eventos em controles Windows Forms