ControlEventHandler Delegera

Definition

Representerar den metod som ska hantera ControlAdded klassens ControlRemoved händelser och Control .

public delegate void ControlEventHandler(System::Object ^ sender, ControlEventArgs ^ e);
public delegate void ControlEventHandler(object sender, ControlEventArgs e);
type ControlEventHandler = delegate of obj * ControlEventArgs -> unit
Public Delegate Sub ControlEventHandler(sender As Object, e As ControlEventArgs)

Parametrar

sender
Object

Källan till händelsen.

e
ControlEventArgs

En ControlEventArgs som innehåller händelsedata.

Exempel

I följande kodexempel skapas ett Binding, lägger till ett ConvertEventHandler ombud för både Parse händelserna och Format och lägger Binding till till BindingsCollection i kontrollen TextBox via DataBindings egenskapen . Händelsedelegaten DecimalToCurrencyString , som läggs till i Format händelsen, formaterar det bundna värdet (en Decimal typ) som valuta med hjälp av ToString metoden. Händelsedelegaten CurrencyStringToDecimal , som läggs till i Parse händelsen, konverterar värdet som visas av kontrollen tillbaka till Decimal typen.

private:
   void BindControl()
   {
      // Create the binding first. The OrderAmount is typed as Decimal.
      Binding^ b = gcnew Binding(
         "Text",ds,"customers.custToOrders.OrderAmount" );
      // Add the delegates to the events.
      b->Format += gcnew ConvertEventHandler( this, &Form1::DecimalToCurrencyString );
      b->Parse += gcnew ConvertEventHandler( this, &Form1::CurrencyStringToDecimal );
      text1->DataBindings->Add( b );
   }

   void DecimalToCurrencyString( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // Check for the appropriate DesiredType.
      if ( cevent->DesiredType != String::typeid )
      {
         return;
      }

      // Use the ToString method to format the value as currency ("c").
      cevent->Value = ( (Decimal^)(cevent->Value) )->ToString( "c" );
   }

   void CurrencyStringToDecimal( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // Check for the appropriate DesiredType. 
      if ( cevent->DesiredType != Decimal::typeid )
      {
         return;
      }

      // Convert the string back to decimal using the static Parse method.
      cevent->Value = Decimal::Parse( cevent->Value->ToString(),
         NumberStyles::Currency, nullptr );
   }
private void BindControl()
{
   // Create the binding first. The OrderAmount is typed as Decimal.
   Binding b = new Binding
      ("Text", ds, "customers.custToOrders.OrderAmount");
   // Add the delegates to the events.
   b.Format += new ConvertEventHandler(DecimalToCurrencyString);
   b.Parse += new ConvertEventHandler(CurrencyStringToDecimal);
   text1.DataBindings.Add(b);
}

private void DecimalToCurrencyString(object sender, ConvertEventArgs cevent)
{
   // Check for the appropriate DesiredType.
   if(cevent.DesiredType != typeof(string)) return;

   // Use the ToString method to format the value as currency ("c").
   cevent.Value = ((decimal) cevent.Value).ToString("c");
}

private void CurrencyStringToDecimal(object sender, ConvertEventArgs cevent)
{
   // Check for the appropriate DesiredType. 
   if(cevent.DesiredType != typeof(decimal)) return;

   // Convert the string back to decimal using the static Parse method.
   cevent.Value = Decimal.Parse(cevent.Value.ToString(),
   NumberStyles.Currency, null);
}
Private Sub BindControl()
    ' Create the binding first. The OrderAmount is typed as Decimal.
    Dim b As New Binding("Text", ds, "customers.custToOrders.OrderAmount")
    ' Add the delegates to the events.
    AddHandler b.Format, AddressOf DecimalToCurrencyString
    AddHandler b.Parse, AddressOf CurrencyStringToDecimal
    text1.DataBindings.Add(b)
End Sub


Private Sub DecimalToCurrencyString(sender As Object, cevent As ConvertEventArgs)
    ' Check for the appropriate DesiredType.
    If cevent.DesiredType IsNot GetType(String) Then
        Return
    End If 
    ' Use the ToString method to format the value as currency ("c").
    cevent.Value = CDec(cevent.Value).ToString("c")
End Sub


Private Sub CurrencyStringToDecimal(sender As Object, cevent As ConvertEventArgs)
    ' Check for the appropriate DesiredType. 
    If cevent.DesiredType IsNot GetType(Decimal) Then
        Return
    End If 
    ' Convert the string back to decimal using the static Parse method.
  cevent.Value = Decimal.Parse(cevent.Value.ToString, _
  NumberStyles.Currency, nothing)

End Sub

Kommentarer

När du skapar ett ControlEventArgs ombud identifierar du den metod som ska hantera händelsen. Om du vill associera händelsen med händelsehanteraren lägger du till en instans av ombudet till händelsen. Händelsehanteraren anropas när händelsen inträffar, såvida du inte tar bort ombudet. Mer information om ombud för händelsehanterare finns i Hantera och höja händelser.

Tilläggsmetoder

Name Description
GetMethodInfo(Delegate)

Hämtar ett objekt som representerar den metod som representeras av det angivna ombudet.

Gäller för

Se även