硬件学院 | 网络学院 | 游戏秘籍 | 求职技巧 | 企业管理 | 软件资讯 | IT导购 | 软件下载 | 源码下载
软件学院 | 安全资讯 | 图形图象 | 网络营销 | 电子商务 | 硬件资讯 | IT生活 | 教程下载 | 电影娱乐
网站首页    个人求职    单位招聘    高校联盟    猎头服务    培训服务    资讯中心    IT论坛
让每一个热爱IT的人都找到一份满意的工作!
文章搜索:
 您的位置首页->-> 软件学院-> .NET技术-> 按控件实例名称及其属性名称实现动态赋值
按控件实例名称及其属性名称实现动态赋值
作者:中国资讯网 来源:zixuen.com 加入时间:2005-5-12 www.cnitrc.com
'按控件实例名称及其属性名称实现动态赋值

'入口参数:ClassInstance 控件所在的类实例

' ControlName 控件实例名称,区分大小写

' PropertyName 要设值的控件属性名称,区分大小写(其实这里可以不必区分大小写的,只是为了养成习惯,我这样要求自己的)

' Value 新值,类型是一个Object,这倒是要注意的

'出口参数: True则重设成功,False不成功

'需要 Imports System.Reflection和Imports System.ComponentModel

Public Function SetValueControlProperty(ByVal ClassInstance As Object, ByVal ControlName As String, ByVal PropertyName As String, ByVal Value As Object) As Boolean

Dim Result As Boolean = False '返回值。虽然默认是Flase,但我还是喜欢这样设它,主要是看着明了

'下面我不注释了

Dim myType As Type = ClassInstance.GetType

Dim myFieldInfo As FieldInfo = myType.GetField("_" & ControlName, BindingFlags.NonPublic Or _

BindingFlags.Instance Or BindingFlags.Public) '加"_"这个是特要紧的



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 = True

Catch ex As Exception

MsgBox(ex.Message)

End Try

End If

End If



Return Result

End Function



'测试

Private Sub Test()

SetValueControlProperty(Me, "Button1", "Text", "Hello")

SetValueControlProperty(Me, "Button2", "Visible", False)

Dim frm As New Form2

SetValueControlProperty(frm, "MyTextBox", "Text", "应该还行吧?")

frm.Show()

End Sub



  相关文章:
.NET技术
ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库技术
其它类
工具软件
办公软件
本类阅读TOP10
 
关于我们   |   服务声明   |   使用帮助   |   广告合作   |   网站地图   |   友情链接   |   加盟合作   |   联系我们
Copyright © 2006 cnitrc.com Inc. All Rights Reserved. 浙ICP备05074295号
中国IT人才网 版权所有 网络实名:中国IT人才
未经书面授权严禁转载和复制本站的任何招聘信息和文章