' Set a property via reflection and return True if successful
' Example: SetProperty(Button1, "Text", "Click me")
Function SetProperty(ByVal obj As Object, ByVal propertyName As String, _
ByVal val As Object) As Boolean
Try
' get a reference to the PropertyInfo, exit if no property with that
' name
Dim pi As System.Reflection.PropertyInfo = obj.GetType().GetProperty _
(propertyName)
If pi Is Nothing Then Return False
' convert the value to the expected type
val = Convert.ChangeType(val, pi.PropertyType)
' attempt the assignment
pi.SetValue(obj, val, Nothing)
Return True
Catch
Return False
End Try
End Function