This documentation is archived and is not being maintained.

Binding.BindingComplete Event

Occurs when the FormattingEnabled property is set to true and a binding operation is complete, such as when data is pushed from the control to the data source or vice versa

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

'Declaration
Public Event BindingComplete As BindingCompleteEventHandler
'Usage
Dim instance As Binding 
Dim handler As BindingCompleteEventHandler 

AddHandler instance.BindingComplete, handler

This event is raised under any of the following conditions when FormattingEnabled is true:

  • Data from the data source is pushed onto the control property.

  • Data from the control property is pushed onto the data source.

This event is raised at the completion of these operations, independent of the completion status. For example, if a binding operation binds a null value to a Value property, an exception is thrown, but the BindingComplete event still occurs. The handler of this event can take the appropriate action, based on the success, error, or exceptions in the binding process, by examining the BindingCompleteState property of the BindingCompleteEventArgs parameter.

For more information about handling events, see Consuming Events.

The following code example demonstrates how to handle the BindingComplete event.

Imports System
Imports System.Drawing
Imports System.Windows.Forms

Class Form1
    Inherits Form

    Private  BindingSource1 As New BindingSource()
    Private textBox1 As New TextBox()
    Private textBox2 As New TextBox()
    Private textBox3 As New TextBox()

    Public Sub New()

        'Set up the textbox controls. 
        Me.textBox1.Location = New System.Drawing.Point(82, 13)
        Me.textBox1.TabIndex = 1
        Me.textBox2.Location = New System.Drawing.Point(81, 47)
        Me.textBox2.TabIndex = 2
        Me.textBox3.Location = New System.Drawing.Point(81, 83)
        Me.textBox3.TabIndex = 3

        ' Add the textbox controls to the form 
        Me.Controls.Add(Me.textBox2)
        Me.Controls.Add(Me.textBox1)
        Me.Controls.Add(Me.textBox3)

    End Sub 

    Private WithEvents partNameBinding As Binding
    Private WithEvents partNumberBinding As Binding

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
        Handles Me.Load

        ' Set the DataSource of BindingSource1 to the Part type.
        BindingSource1.DataSource = GetType(Part)

        ' Bind the textboxes to the properties of the Part type,  
        ' enabling formatting.
        partNameBinding = textBox1.DataBindings.Add("Text", BindingSource1, _
            "PartName", True)
        partNumberBinding = textBox2.DataBindings.Add("Text", BindingSource1, _
            "PartNumber", True)

        'Bind the textbox to the PartPrice value with currency formatting.
        textBox3.DataBindings.Add("Text", BindingSource1, "PartPrice", _
            True, DataSourceUpdateMode.OnPropertyChanged, 0, "C")

        ' Add a new part to BindingSource1.
        BindingSource1.Add(New Part("Widget", 1234, 12.45))
    End Sub 

    ' Handle the BindingComplete event to catch errors and exceptions  
    ' in binding process. 
    Sub partNumberBinding_BindingComplete(ByVal sender As Object, _
        ByVal e As BindingCompleteEventArgs) _
        Handles partNumberBinding.BindingComplete

        If Not e.BindingCompleteState = BindingCompleteState.Success Then
            MessageBox.Show("partNumberBinding: " + e.ErrorText)
        End If 

    End Sub 

    ' Handle the BindingComplete event to catch errors and exceptions  
    ' in binding process. 
    Sub partNameBinding_BindingComplete(ByVal sender As Object, _
        ByVal e As BindingCompleteEventArgs) _
        Handles partNameBinding.BindingComplete

        If Not e.BindingCompleteState = BindingCompleteState.Success Then
            MessageBox.Show("partNameBinding: " + e.ErrorText)
        End If 

    End Sub

    <STAThread()> _
    Shared Sub Main()
        Application.EnableVisualStyles()
        Application.Run(New Form1())
    End Sub 

End Class 

' Represents a business object that throws exceptions when invalid  
' values are entered for some of its properties. 
Public Class Part
    Private name As String 
    Private number As Integer 
    Private price As Double 

    Public Sub New(ByVal name As String, ByVal number As Integer, _
        ByVal price As Double)

        PartName = name
        PartNumber = number
        PartPrice = price
    End Sub 


    Public Property PartName() As String 
        Get 
            Return name
        End Get 
        Set(ByVal value As String)
            If Value.Length <= 0 Then 
                Throw New Exception("Each part must have a name.")
            Else
                name = Value
            End If 
        End Set 
    End Property 

    Public Property PartPrice() As Double 
        Get 
            Return price
        End Get 
        Set(ByVal value As Double)
            price = Value
        End Set 
    End Property 

    Public Property PartNumber() As Integer 
        Get 
            Return number
        End Get 
        Set(ByVal value As Integer)
            If Value < 100 Then 
                Throw New Exception("Invalid part number." _
                    & " Part numbers must be greater than 100.")
            Else
                number = Value
            End If 
        End Set 
    End Property 
End Class

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.

.NET Framework

Supported in: 3.5, 3.0, 2.0

.NET Compact Framework

Supported in: 3.5, 2.0
Show: