ConvertEventHandler Delegato

Definizione

Rappresenta il metodo che gestirà gli eventi Parse e Format di un controllo 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)

Parametri

sender
Object

Origine dell'evento.

e
ConvertEventArgs

Oggetto ConvertEventArgs che contiene i dati dell'evento.

Esempio

Il codice seguente

Nell'esempio viene creato un Bindingoggetto , viene aggiunto un ConvertEventHandler delegato agli Parse eventi e Format e viene aggiunto all'oggetto BindingBindingsCollection di un TextBox controllo tramite la DataBindings proprietà . Il DecimalToCurrency delegato dell'evento, aggiunto all'evento Format , formatta il valore associato (un Decimal tipo) come valuta usando il ToString metodo . Il CurrencyToDecimal delegato dell'evento, aggiunto all'evento Parse , converte nuovamente il valore visualizzato dal controllo nel Decimal tipo .

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

Commenti

Quando si crea un delegato ConvertEventHandler, si identifica il metodo che gestirà l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non venga rimosso il delegato. Per altre informazioni sui delegati del gestore eventi, vedere Gestione e generazione di eventi.

Metodi di estensione

GetMethodInfo(Delegate)

Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.

Si applica a