ConvertEventHandler Delegera

Definition

Representerar den metod som ska hantera Parse händelserna och Format för en Binding.

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

Parametrar

sender
Object

Källan till händelsen.

e
ConvertEventArgs

En ConvertEventArgs som innehåller händelsedata.

Exempel

Följande kod

exempel skapar en Binding, lägger till ett ConvertEventHandler ombud för både Parse händelserna och Format och lägger Binding till i BindingsCollection en TextBox kontroll via DataBindings egenskapen . Händelsedelegaten DecimalToCurrency , 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 CurrencyToDecimal , som läggs till i Parse händelsen, konverterar värdet som visas av kontrollen tillbaka till Decimal typen.

private:
   void DecimalToCurrency( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // The method converts only to string type. Test this using the 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 CurrencyToDecimal( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // ' The method converts only to decimal type. 
      if ( cevent->DesiredType != Decimal::typeid )
      {
         return;
      }

      // Converts the string back to decimal using the static ToDecimal method.
      cevent->Value = Convert::ToDecimal( cevent->Value->ToString() );
   }

   void BindControl()
   {
      // Creates 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::DecimalToCurrency );
      b->Parse += gcnew ConvertEventHandler(
         this, &Form1::CurrencyToDecimal );
      text1->DataBindings->Add( b );
   }
private void DecimalToCurrency(object sender, ConvertEventArgs cevent)
{
   // The method converts only to string type. Test this using the 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 CurrencyToDecimal(object sender, ConvertEventArgs cevent)
{
   // ' The method converts only to decimal type. 
   if (cevent.DesiredType != typeof(decimal)) return;

   // Converts the string back to decimal using the static ToDecimal method.
   cevent.Value = Convert.ToDecimal(cevent.Value.ToString());
}

private void BindControl()
{
   // Creates 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(DecimalToCurrency);
   b.Parse += new ConvertEventHandler(CurrencyToDecimal);
   text1.DataBindings.Add(b);
}
Private Sub DecimalToCurrency(sender As Object, cevent As ConvertEventArgs)
    ' The method converts only to string type. Test this using the 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 CurrencyToDecimal(sender As Object, cevent As ConvertEventArgs)
    ' The method converts only to decimal type. 
    If cevent.DesiredType IsNot GetType(Decimal) Then
        Return
    End If 
    ' Converts the string back to decimal using the static ToDecimal method.
    cevent.Value = Convert.ToDecimal(cevent.Value.ToString())
End Sub 


Private Sub BindControl()
    ' Creates the binding first. The OrderAmount is typed as Decimal.
    Dim b As New Binding("Text", ds, "customers.custToOrders.OrderAmount")
    ' Adds the delegates to the events.
    AddHandler b.Format, AddressOf DecimalToCurrency
    AddHandler b.Parse, AddressOf CurrencyToDecimal
    text1.DataBindings.Add(b)
End Sub

Kommentarer

När du skapar ett ConvertEventHandler 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