Export (0) Print
Expand All
Expand Minimize

ControlEventHandler Delegate

Represents the method that will handle the ControlAdded and ControlRemoved events of the Control class.

[Visual Basic]
<Serializable>
Public Delegate Sub ControlEventHandler( _
   ByVal sender As Object, _
   ByVal e As ControlEventArgs _
)
[C#]
[Serializable]
public delegate void ControlEventHandler(
   object sender,
   ControlEventArgs e
);
[C++]
[Serializable]
public __gc __delegate void ControlEventHandler(
   Object* sender,
   ControlEventArgs* e
);

[JScript] In JScript, you can use the delegates in the .NET Framework, but you cannot define your own.

Parameters [Visual Basic, C#, C++]

The declaration of your event handler must have the same parameters as the ControlEventHandler delegate declaration.

sender
The source of the event.
e
A ControlEventArgs that contains the event data.

Remarks

When you create a ControlEventArgs delegate, you identify the method that will handle the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate. For more information about event handler delegates, see Events and Delegates.

Example

[Visual Basic, C#, C++] The following example creates a Binding, adds a ConvertEventHandler delegate to both the Parse and Format events, and adds the Binding to the BindingsCollection of a TextBox control through the DataBindings property. The DecimalToCurrencyString event delegate, added to the Format event, formats the bound value (a Decimal type) as currency using the ToString method. The CurrencyStringToDecimal event delegate, added to the Parse event, converts the value displayed by the control back to the Decimal type.

[Visual Basic] 
Private Sub BindControl()
    ' Create the binding first. The OrderAmount is typed as Decimal.
    Dim b As New Binding("Text", ds, "customers.custToOrders.OrderAmount")
    ' Add the delegates to the events.
    AddHandler b.Format, AddressOf DecimalToCurrencyString
    AddHandler b.Parse, AddressOf CurrencyStringToDecimal
    text1.DataBindings.Add(b)
End Sub 'BindControl


Private Sub DecimalToCurrencyString(sender As Object, cevent As ConvertEventArgs)
    ' Check for the appropriate DesiredType.
    If Not cevent.DesiredType Is 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 'DecimalToCurrencyString


Private Sub CurrencyStringToDecimal(sender As Object, cevent As ConvertEventArgs)
    ' Check for the appropriate DesiredType. 
    If Not cevent.DesiredType Is GetType(Decimal) Then
        Return
    End If 
    ' Convert the string back to decimal using the static Parse method.
  cevent.Value = Decimal.Parse(cevent.Value.ToString, _
  NumberStyles.Currency, nothing)

End Sub 'CurrencyStringToDecimal

[C#] 
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);
}


[C++] 
private:
void BindControl()
{
   // Create the binding first. The OrderAmount is typed as Decimal.
   Binding* b = new Binding
      (S"Text", ds, S"customers.custToOrders.OrderAmount");
   // Add the delegates to the events.
   b->Format += new ConvertEventHandler(this, &Form1::DecimalToCurrencyString);
   b->Parse += new ConvertEventHandler(this, &Form1::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 = (dynamic_cast<Decimal*> (cevent->Value))->ToString(S"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 = __box(Decimal::Parse(cevent->Value->ToString(),
   NumberStyles::Currency, 0));
}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Windows.Forms

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

Assembly: System.Windows.Forms (in System.Windows.Forms.dll)

See Also

System.Windows.Forms Namespace | Binding | ControlEventArgs | ControlAdded | ControlRemoved

Show:
© 2014 Microsoft