ControlEventHandler (Delegado)
Actualización: noviembre 2007
Representa el método que controlará los eventos ControlAdded y ControlRemoved de la calase Control.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
/** @delegate */ public delegate void ControlEventHandler( Object sender, ControlEventArgs e )
Parámetros
- sender
- Tipo: System.Object
Origen del evento.
- e
- Tipo: System.Windows.Forms.ControlEventArgs
Objeto ControlEventArgs que contiene los datos del evento.
Cuando se crea un delegado de ControlEventArgs, 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 sobre los 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 la colección BindingsCollection de un control TextBox mediante la propiedad DataBindings. El delegado de eventos DecimalToCurrencyString, agregado al evento Format, aplica formato de moneda al valor enlazado (tipo Decimal) mediante el método ToString. El delegado de eventos CurrencyStringToDecimal, agregado al evento Parse, vuelve a convertir el valor mostrado por el control al tipo Decimal.
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 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.add_Format(new ConvertEventHandler(DecimalToCurrencyString));
b.add_Parse(new ConvertEventHandler(CurrencyStringToDecimal));
text1.get_DataBindings().Add(b);
} //BindControl
private void DecimalToCurrencyString(Object sender, ConvertEventArgs cevent)
{
// Check for the appropriate 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)
{
// Check for the appropriate DesiredType.
if (!(cevent.get_DesiredType().Equals(System.Decimal.class.ToType()))) {
return;
}
// Convert the string back to decimal using the static Parse method.
cevent.set_Value(Decimal.Parse(cevent.get_Value().ToString(),
NumberStyles.Currency, null));
} //CurrencyStringToDecimal
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.