我的VB.NET项目需要帮助。我在按钮内声明了一个动态文本框“dim textbox as new textbox()”,当我按下button1时它将创建一个新的文本框,我也会在创建的新文本框上放置文本。现在已经创建了一个动态文本框。当我按下button2时,我想将标签上的文本与动态文本框中的文本进行比较,但是我收到的错误是,对象参考没有设置对象的实例。
答案 0 :(得分:0)
我想你在按钮的click事件处理程序中创建了文本框。这样,您只能在此事件处理程序方法中访问它。要在其他事件处理程序中使用它,您需要将声明移动到类级别,例如:
Private txtBox As Textbox
Private Sub btn1_Click(sender As Object, e As EventArgs) Handles btn1.Click
txtBox = New Textbox()
' ...
Me.Controls.Add(txtBox)
End Sub
Private Sub btn2_Click(sender As Object, e As EventArgs) Handles btn2.Click
If txtBox IsNot Nothing Then
MsgBox(txtBox.Text)
End If
End Sub
答案 1 :(得分:0)
试试这样。您必须将对文本框的引用存储在变量中,例如: G。在表单实例的范围内。
Public Class Form1
Private dynTextbox As TextBox
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Me.dynTextbox = New TextBox
With Me.dynTextbox
.Top = Me.Button1.Top
.Left = Me.Button1.Right + 5
.Text = "test"
End With
Me.Controls.Add(Me.dynTextbox)
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If Me.dynTextbox IsNot Nothing Then MessageBox.Show(Me.Label1.Text = Me.dynTextbox.Text)
End Sub
End Class
如果你动态创建多个文本框,你可以将它们存储在某个数组或列表中(例如在List(Of TextBox)
中)然后你必须找到一种方法来引用你需要的那个,这取决于你的具体项目。