Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

ConvertEventHandler (Delegado)

Representa el método que controlará los eventos Parse y Format de un control Binding.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public delegate void ConvertEventHandler (
	Object sender,
	ConvertEventArgs e
)
/** @delegate */
public delegate void ConvertEventHandler (
	Object sender, 
	ConvertEventArgs e
)
No aplicable.

Parámetros

sender

Origen del evento.

e

ConvertEventArgs que contiene los datos del evento.

Cuando se crea un delegado ConvertEventHandler, se identifica el método que controlará el evento. Para asociar el evento con el controlador de eventos, hay que agregar una instancia del delegado al evento. Se llama al controlador de eventos siempre que se produce el evento, a menos que se quite el delegado. Para obtener más información acerca de delegados del controlador de eventos, vea Eventos y delegados.

En el siguiente ejemplo de código se crea un objeto Binding, se agrega un delegado ConvertEventHandler a los eventos Parse y Format y se agrega el objeto Binding a BindingsCollection de un control TextBox mediante la propiedad DataBindings. El delegado de evento DecimalToCurrency, agregado al evento Format, da formato al valor enlazado (un tipo Decimal) como moneda mediante el método ToString. El delegado de evento CurrencyToDecimal, agregado al evento Parse, convierte de nuevo el valor mostrado por el control al tipo Decimal.

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 void DecimalToCurrency(Object sender, ConvertEventArgs cevent)
{
    // The method converts only to string type. 
    // Test this using the DesiredType.
    if (!(cevent.get_DesiredType().Equals(String.class.ToType()))) {
        return ;
    }
    // Use the ToString method to format the value as currency ("c").
    cevent.set_Value(((System.Decimal)cevent.get_Value()).ToString("c"));
} //DecimalToCurrency

private void CurrencyToDecimal(Object sender, ConvertEventArgs cevent)
{
    //  The method converts only to decimal type. 
    if (!(cevent.get_DesiredType().Equals(System.Decimal.class.ToType()))) {
        return ;
    }
    // Converts the string back to decimal 
    // using the static ToDecimal method.
    cevent.set_Value(Convert.ToDecimal(cevent.get_Value().ToString()));
} //CurrencyToDecimal

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.add_Format(new ConvertEventHandler(DecimalToCurrency));
    b.add_Parse(new ConvertEventHandler(CurrencyToDecimal));
    text1.get_DataBindings().Add(b);
} //BindControl

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar:
© 2014 Microsoft