H o m e

 

B i n d i n g   C o n t r o l   P r o p e r t i e s

By Michael McIntyre

mikemc@getdotnetcode.com

 

You can use data binding to bind a property of a Windows Forms control to a property of another Windows Forms control property.  Through the binding, when the property of the first control is changed the property of the second control is changed.

 

For example, bind the Text property of a TextBox control to the BackColor property of a Button control, so that when a user enters the name of a color in the TextBox, the BackColor of the Button is changed. 

 

Or, bind the Checked property of a Checkbox control to the Visible property of a Button control so that; 1) when a user checks the CheckBox the Button is visible; 2) when a user unchecks the CheckBox the Button is invisible.

 

Example: Bind Control Properties

 

1.  Start a new Visual Studio.Net VB.NET Windows Forms project. 

 

2.  To Form1 add three controls:

 

Checkbox

Name:  ShowCheckBox

Text:    Show

 

TextBox

Name: ColorTextBox

Text:   Red

 

Button

Name: TestButton

Text:   Text

 

3.  Copy the code below and paste it into Form1 just above Form1’s End Class line.

 

Private WithEvents TestBackColorBinding As Binding

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _

  Handles MyBase.Load

     Me.TestButton.DataBindings.Add("Visible", Me.ShowCheckbox, "Checked")

     TestBackColorBinding = New Binding("BackColor", Me.ColorTextBox, "Text")

     Me.TestButton.DataBindings.Add(TestBackColorBinding)

End Sub

 

Private Sub TestBackColorBinding_Format( _

  ByVal sender As Object, _

  ByVal e As ConvertEventArgs) _

  Handles TestBackColorBinding.Format

 

    Dim aColor As Color = Color.Empty

 

        Try

            Dim newColor As Color = Color.FromName(e.Value.ToString())

            If newColor.IsKnownColor Then

                aColor = newColor

            End If

        Catch

            MessageBox.Show("Please enter a valid color.")

        End Try

        e.Value = aColor

 

End Sub

 

4.  Run the application.

 

5.  Check the ShowCheckBox.

 

Result:  The TestButton control becomes visible.

 

6.  Change the ColorTextBox text from Red to Green.

 

Result:  The BackColor of TestButton changes from red to green.

 

If you have used binding to bind data to Windows Forms controls the code should look familiar.  The only real difference is the source of the data used to bind the controls.

 

This technique can be used to create a very dynamic user interface that requires little or no event handling.

 

To learn more about Windows Forms data binding visit:  Data Binding and Windows Forms

 

Copyright © 2001-2003 aZ Software Developers. All rights reserved.