' Read a property via reflection or return a default value' Example: MessageBox.Show(GetProperty(Button1, "Text", ""))Function GetProperty(ByVal obj As Object, ByVal propertyName As String, _ ByVal defaultValue As Object) As Object Try Dim pi As System.Reflection.PropertyInfo = obj.GetType().GetProperty _ (propertyName) If Not pi Is Nothing Then Return pi.GetValue(obj, Nothing) End If Catch End Try ' if property doesn't exist or throws Return defaultValueEnd Function