当前位置:编程学习 > C#/ASP.NET >>

如何获取控件句柄(有代码)

我在Form被Load的时候有如下代码,并没有直接在Form里面添加这个控件:
 Dim newText As New TextBox
 newText.Name = "MyTextBox"
 controls.Add(newText)

我现在需要得到它的句柄来获取它的text属性,
我是这样来获取的:
Dim t As Type = Me.GetType
Dim f As FieldInfo = t.GetField("MyTextBox",BingingFlags.Default)
Dim myTextBox As TextBox = CType(f.GetValue(Me),TextBox)
Dim str As String = myTextBox.Text
......

运行的时候,看到这个Textbox被添加到Form里面了,但是上面一段代码执行的时候,在第二行,f总是nothing,不知道哪个地方出了问题,请大侠们帮忙啊, --------------------编程问答-------------------- 你只是把它加到了controls集合里,它又不是当前Form类的成员变量

建议你通过反射获取Controls集合变量,然后从中找 --------------------编程问答-------------------- 把newText定义为类的成员就可以了。 --------------------编程问答-------------------- 你还不如让function函数写一个返回值,反正你不用添加NEWBOX控件
public function TEXT(string str)
  Dim   newText   As   New   TextBox 
  newText.Name   =   "MyTextBox" 
  string TxtName=newText.Name;
  return TxtName
......然后调用str --------------------编程问答-------------------- 二楼说的对.
你即然知道了这个控件的NAME,也知道他的类型.不用反射也可以.
Dim str As String = CType(Me.Controls.Item("MyTextBox"), TextBox).Text

同样可以取出它的TEXT值
--------------------编程问答-------------------- Dim   t   As   Type   =   Me.GetType 
Dim   f   As   FieldInfo   =   t.GetField("MyTextBox",BingingFlags.Default) 
这两行似乎没用啊

Dim   myTextBox   As   TextBox   =   CType(Me.Controls.Item("MyTextBox"), TextBox) 
Dim   str   As   String   =   myTextBox.Text 
这样就行了
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,