Exportar (0) Imprimir
Expandir todo

ConvertEventArgs (Clase)

Proporciona los datos de los eventos Format y Parse.

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

public class ConvertEventArgs : EventArgs
public class ConvertEventArgs extends EventArgs
public class ConvertEventArgs extends EventArgs
No aplicable.

Se utiliza ConvertEventArgs para aplicar o quitar el formato de valores mostrados por un control de formularios Windows Forms con enlace a datos a través de un objeto Binding. El evento Format se produce siempre que se enlaza una propiedad de un control a un valor y el evento Parse se produce siempre que cambia el valor enlazado.

Los eventos Format y Parse permiten crear formatos personalizados para mostrar los datos. Por ejemplo, si una tabla contiene datos de tipo Decimal, es posible especificar que los datos se muestren en formato de moneda local estableciendo la propiedad Value del objeto ConvertEventArgs en el valor con formato del evento Format. Por consiguiente, se debe quitar el formato del valor que se muestra en el evento Parse.

Para obtener más información sobre el control de eventos, vea Utilizar eventos.

En el ejemplo de código siguiente, se crea un objeto Binding, se agrega un delegado ConvertEventHandler a los eventos Parse y Format, y se utiliza la propiedad DataBindings para agregar Binding al objeto BindingsCollection de un control TextBox. El delegado de eventos DecimalToCurrencyString, que se agrega al evento Format, utiliza el método ToString para aplicar formato de moneda al valor enlazado (de tipo Decimal). El delegado de eventos CurrencyStringToDecimal, agregado al evento Parse, vuelve a convertir el valor mostrado por el control en el tipo Decimal.

private void DecimalToCurrencyString(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 CurrencyStringToDecimal(object sender, ConvertEventArgs cevent)
{
   // The method converts back to decimal type only. 
   if(cevent.DesiredType != typeof(decimal)) return;

   // Converts the string back to decimal using the static Parse method.
   cevent.Value = Decimal.Parse(cevent.Value.ToString(),
   NumberStyles.Currency, null);
}

private void BindControl()
{
   // Creates the binding first. The OrderAmount is typed as Decimal.
   Binding b = new Binding
   ("Text", ds, "customers.custToOrders.OrderAmount");
   // Adds 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)
{
    // 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"));
} //DecimalToCurrencyString

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

private void BindControl()
{
    // Creates the binding first. The OrderAmount is typed as Decimal.
    Binding b = new Binding("Text", ds, 
        "customers.custToOrders.OrderAmount");
    // Adds the delegates to the events.
    b.add_Format(new ConvertEventHandler(DecimalToCurrencyString));
    b.add_Parse(new ConvertEventHandler(CurrencyStringToDecimal));
    text1.get_DataBindings().Add(b);
} //BindControl

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

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