反射应用之一:根据控件名、属性名进行取值和赋值
来源:互联网 发布:2015淘宝新店扶持时间 编辑:程序博客网 时间:2024/05/17 09:38
'以下根据控件名和属性名取值
Public Function GetValueControlProperty(ByVal ClassInstance As Object, ByVal ControlName As String, ByVal PropertyName As String) As Object
Dim Result As Object
Dim myType As Type = ClassInstance.GetType
Dim myFieldInfo As FieldInfo = myType.GetField("_" & ControlName, BindingFlags.NonPublic Or _
BindingFlags.Instance Or BindingFlags.Public Or BindingFlags.Instance)
If Not myFieldInfo Is Nothing Then
Dim properties As PropertyDescriptorCollection = TypeDescriptor.GetProperties(myType)
Dim myProperty As PropertyDescriptor = properties.Find(PropertyName, False)
If Not myProperty Is Nothing Then
Dim ctr As Object
ctr = myFieldInfo.GetValue(ClassInstance)
Try
Result = myProperty.GetValue(ctr)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End If
Return Result
End Function
'以下根据控件名和属性名赋值
Public Function SetValueControlProperty(ByVal ClassInstance As Object, ByVal ControlName As String, ByVal PropertyName As String, ByVal Value As Object) As Object
Dim Result As Object
Dim myType As Type = ClassInstance.GetType
Dim myFieldInfo As FieldInfo = myType.GetField("_" & ControlName, BindingFlags.NonPublic _
Or BindingFlags.Instance Or BindingFlags.Public Or BindingFlags.Instance) '加"_"这个是特要紧的
If Not myFieldInfo Is Nothing Then
Dim properties As PropertyDescriptorCollection = TypeDescriptor.GetProperties(myType)
Dim myProperty As PropertyDescriptor = properties.Find(PropertyName, False) '这里设为True就不用区分大小写了
If Not myProperty Is Nothing Then
Dim ctr As Object
ctr = myFieldInfo.GetValue(ClassInstance) '取得控件实例
Try
myProperty.SetValue(ctr, Value)
Result = ctr
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End If
Return Result
End Function
'调用
'以下实现Label1.Text=TextBox1.Text,Label2.Text=TextBox2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
For i = 1 To 2
Me.SetValueControlProperty(Me, "Label" & i.ToString, "Text", GetValueControlProperty(Me, "TextBox" & i.ToString, "Text"))
Next i
End Sub
- 反射应用之一:根据控件名、属性名进行取值和赋值
- 反射应用之一:根据控件名、属性名进行取值和赋值
- 反射应用之一:根据控件名、属性名进行取值和赋值
- 根据控件名、属性名进行取值和赋值
- 根据控件名、属性名进行取值和赋值
- 通过属性名利用反射给控件赋值或者取值
- 反射的应用--根据控件名取得控件
- 反射获取属性名和属性值
- java 反射机制--根据属性名获取属性值
- C#根据类名获取属性名和DESCRIPTION值
- 利用Java反射根据属性名获取对象值和类型代码
- 根据反射机制由类名得到属性名
- 根据容器和控件名查找控件
- java反射获取类的属性名和属性值
- C# 反射属性值和遍历属性名
- 根据公开属性名获取属性值
- 【动态页面】(三)之一:利用Java反射机制读取Jar包的类名和属性名
- 根据属性名和值来返回对象
- Hello World!
- 反射发送实战(-)InvokeMember
- 一个计算质数的Java程序
- ASP.NET中对表单输入行有选择验证(原作)
- 你有几个孩子?
- 反射应用之一:根据控件名、属性名进行取值和赋值
- “请帮助另外10个人吧”——一个德国小孩的故事
- 反射的常用用法
- ASC II
- Struts__all
- web.xml 文件中定义和映射Servlet(1/3)
- EJB3.0概览
- .Net中的反射使用入门
- Java读Excel的方法