HaveSameValue - Check whether all the input controls have the same property value
' Return True if all the controls in the input array have the same value for
' the specified property
' Note: requires the GetField function
'
' Example:
' Debug.WriteLine(HaveSameValue("Text", TextBox1, Button1, Button2))
' Debug.WriteLine(HaveSameValue("ForeColor", Button1, Button2))
' Button1.ForeColor = Color.Yellow
' Debug.WriteLine(HaveSameValue("ForeColor", Button1, Button2))
Function HaveSameValue(ByVal propertyName As String, ByVal ParamArray objs() As _
Object) As Boolean
' return True if there is 0 or 1 object in the input array
If objs.Length = 0 OrElse objs.Length = 1 Then Return True
' get the value of the first object in the array, that will be used as the
' value to compare against
Dim val1 As Object = GetField(objs(0), propertyName, Nothing)
' compare val1 with the property value of all the other objects,
' and return False if the 2 values do not match
Dim i As Integer
For i = 1 To objs.Length - 1
Dim val2 As Object = GetField(objs(i), propertyName, Nothing)
If val2.Equals(val1) = False Then Return False
Next
' if we get to this point, all the objects have the same value for the
' specified property
Return True
End Function