上一篇:取得本机IP地址的方法两则 >>
反射应用之一:根据控件名、属性名进行取值和赋值
@#以下根据控件名和属性名取值
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
相关文章:
- · asp.net 实现“九连环”小游戏
- · 将Word文档转化为HTML格式的文档
- · 保存美丽记忆 用ASP.NET创建网络相册
- · ASP.NET中利用Crystal Report创建图表
- · 几个很不错的.NET 相关的FAQ和例子代码的连接
- · net应用程序如何批上XP的外衣?
- · 用.net中的socket实现文件传输
- · .NET Framework 中多语言支持的实现
- · weblogin类--简介(一)
- · .Net中如何操作IIS
- · 在.NET中调用存储过程
- · 收集了一些小技巧的连接 (.NET)
- · 使用CodeDom来生成.cs文件
- · 一次重构导向设计模式的实践(.NET)
- · 在设计期跟踪代码 (.NET)
- · 编译自己的资源文件编辑器(reseditor.exe)
- · .net辅助工具列表
- · .NET 2.0 基础类库中的范型——其他范型类
- · .NET 2.0 基础类库中的范型——Functional Programming
- · .NET 2.0 基础类库中的范型——范型集合
- · .NET 下的remoting使用。(TCP通道)
- · .NET系统学习----Globalization & Resources
- · CLR 调试接口的架构与应用 [3] 调试事件
- · CLR 调试接口的架构与应用 [2] 调试框架
- · .net事务处理并发性处理的意义(此文仅适合入门者阅读)
- · 在.Net1.2中对Xquery的支持
- · 第十五章 接口[《.net框架程序设计》读书笔记]
- · 第十四章 数组[《.net框架程序设计》读书笔记]
- · 第十三章 枚举类型与位标记[《.net框架程序设计》读书笔记]
- · 第十二章 委托[《.net框架程序设计》读书笔记]
- · 第十一章 事件[《.net框架程序设计》读书笔记]
- · 第十章 属性[《.net框架程序设计》读书笔记]
- · 第九章 方法[《.net框架程序设计》读书笔记]
- · 第八章 常数与字段[《.NET框架程序设计》读书笔记]
- · 第七章 类型成员及其访问限定[《.NET框架程序设计》读书笔记]
- · 手工修改动网新闻.net3.0的Bug
- · .net的MSMQ异步调用
- · 关于《.net框架程序设计》读书笔记
