通过名称获得控件
今天遇到了一个问题,有十个控件,名称很类似,只是尾数不同.操作也是一样的,只是各个取得数据的条件不同.但是事件还是一样的.一个个单独的去写有些繁琐.比较方便的办法就是把他们作为整体去处理.在赋值和读数据的时间使用循环操作.
而这时,利用控件的名字获得控件就是一个很重要的环节了.
”’ <summary>
”’ 根据名称取得控件
”’ </summary>
”’ <param name="Name">控件名</param>
”’ <param name="CurrentForm">窗体</param>
”’ <returns></returns>
”’ <remarks></remarks>
Private Function GetControlByName (ByVal Name As String, ByVal CurrentForm As Form) As Control
Dim info As FieldInfo = _
CurrentForm.GetType().GetField("_" & Name, _ “”此处的下划线让我郁闷了
BindingFlags.NonPublic Or _
BindingFlags.Instance Or _
BindingFlags.Public Or _
BindingFlags.IgnoreCase)
Dim a As Object = CurrentForm.GetType.GetMembers()
Dim files As System.Reflection.FieldInfo() = CurrentForm.GetType.GetFields()
If Not info Is Nothing ThenReturn CType(info.GetValue(CurrentForm), Control)
End If
Return Nothing
End Function
这里有点不一样的就是在控件名称前面要加上一个”_”这个可能是VB.NET和C#.NET的区别吧.VB.NET中反射的时间,会在所有控件前面加一个”_”,至于这其中的用意,不是很理解.不过,VB.NET本身就很怪异了.
Related posts
Sponsor loading...




One Comment, Comment or Ping
Reply to “通过名称获得控件”