Notifications for controls change

Hi

instead of using the onChanged event for each one of the controls on a form, Somebody told me that there is a way to know if one of the controls on a form has changed !

Does sombody know about a property or control that gives you that information ?

TNX
Ronnie_ShmuelAsked:
Who is Participating?
 
amebaCommented:
There are 4 ways to see if something has changed:
http://www.vb2themax.com/Item.asp?PageID=TipBank&ID=38

http://www.vb2themax.com/Item.asp?PageID=TipBank&ID=416
uses ctrl.DataChanged
0
 
RichWCommented:
You can set the Tag property of objects when you load a form.  For example to set the tag property when a form loads:

Private Sub Form_Load()
Dim obj As Object

For Each obj In Me
    If TypeOf obj Is TextBox Then
        obj.Tag = obj.Text
    End If
Next
End Sub

Then you can check to see if that property has changed:

Private Sub Command1_Click()
Dim obj As Object

For Each obj In Me
    If TypeOf obj Is TextBox Then
        If obj.Tag <> obj.Text Then
            MsgBox obj.Name & " has changed!"
        End If
    End If

Next
End Sub

Tweak the code to get it to fit your needs.
Cheers,
RichW
0
 
Ronnie_ShmuelAuthor Commented:
the datachange prop. doesn't work for all the controls but it's enough for me.

The code below show an example:

Private Sub Command1_Click()
   
    Dim ctrl As Control

    For Each ctrl In Screen.ActiveForm.Controls
        If TypeOf ctrl Is TextBox Then
            If ctrl.DataChanged = True Then
                MsgBox "Changed"
                ctrl.DataChanged = False
            End If
        End If
    Next
   
End Sub
0
 
amebaCommented:
Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.