Share via


Definizione di un evento

Per informazioni dettagliate sulla definizione di eventi personalizzati, vedere Generazione di un evento. Se si definisce un evento cui non sono associati dati, utilizzare per i dati dell'evento il tipo di base, System.ComponentModel.EventArgs, e System.ComponentModel.EventHandler come delegato dell'evento. Non rimarrà che definire un membro evento nonché un metodo OnNomeEvento protetto che generi l'evento.

Nel codice che segue viene illustrato come il controllo personalizzato FlashTrackBar definisce un evento personalizzato, ValueChanged. Per il codice completo dell'esempio FlashTrackBar, vedere Esempio di controllo Windows Form.

Option Explicit
Option Strict

Imports System
Imports System.Windows.Forms
Imports System.Drawing

Public Class FlashTrackBar
   Inherits Control
   
   ' The event does not have any data, so EventHandler is adequate 
   ' as the event delegate.        
   ' Define the event member using the event keyword.
   ' In this case, for efficiency, the event is defined 
   ' using the event property construct.
   Public Event ValueChanged As EventHandler
   ' The protected method that raises the ValueChanged 
   ' event when the value has actually 
   ' changed. Derived controls can override this method.  
   Protected Overridable Sub OnValueChanged(e As EventArgs)
      RaiseEvent ValueChanged(Me, e)
   End Sub
End Class
[C#]
using System;
using System.Windows.Forms;
using System.Drawing;

public class FlashTrackBar : Control {
   // The event does not have any data, so EventHandler is adequate 
   // as the event delegate.
   private EventHandler onValueChanged;
   // Define the event member using the event keyword.
   // In this case, for efficiency, the event is defined 
   // using the event property construct.
   public event EventHandler ValueChanged {
            add {
                onValueChanged += value;
            }
            remove {
                onValueChanged -= value;
            }
        }
   // The protected method that raises the ValueChanged
   // event when the value has actually 
   // changed. Derived controls can override this method.  
   protected virtual void OnValueChanged(EventArgs e) {
      if (ValueChanged != null) {
         ValueChanged(this, e);
      }
   }
}

Vedere anche

Eventi nei controlli Windows Form | Generazione di un evento | Gestione e generazione di eventi