ConvertEventArgs Class
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
The ConvertEventArgs is used to format and unformat values displayed by a Windows Forms control that is bound to data through a Binding object. The Format event occurs whenever a control property is bound to a value and the Parse event occurs whenever the bound value changes.
The Format and Parse events allow you to create custom formats for displaying data. For example, if the data in a table is of type Decimal, you can specify that the data should be displayed in the local currency format--by setting the Value property of the ConvertEventArgs to the formatted value in the Format event. You must consequently unformat the displayed value in the Parse event.
For more information about handling events, see Consuming Events.
The following code example creates a Binding, adds a ConvertEventHandler delegate to both the Parse and Format events, and uses the DataBindings property to add the Binding to the BindingsCollection of a TextBox control. The DecimalToCurrencyString event delegate, which is added to the Format event, uses the ToString method to format the bound value (a Decimal type) as currency. The CurrencyStringToDecimal event delegate, which is added to the Parse event, converts the value displayed by the control back to the Decimal type.
Private Sub DecimalToCurrencyString(sender As Object, cevent As ConvertEventArgs) ' The method converts only to string type. Test this using the 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) ' The method converts back to decimal type only. If Not cevent.DesiredType Is GetType(Decimal) Then Return End If ' Converts the string back to decimal using the shared Parse method. cevent.Value = Decimal.Parse(cevent.Value.ToString, _ NumberStyles.Currency, nothing) End Sub 'CurrencyStringToDecimal 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 DecimalToCurrencyString AddHandler b.Parse, AddressOf CurrencyStringToDecimal text1.DataBindings.Add(b) End Sub 'BindControl
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.