如何获取控件句柄(有代码)
我在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