问题描述
所以在这里我试图创建一个动态文本框,每个文本框都有不同的功能 但遗憾的是消息框不起作用我正在学习 selft 学习这个,我很难过。谁能告诉我我做错了什么?
Public Function AddNewTextBox() As System.Windows.Forms.TextBox
Dim txt As New System.Windows.Forms.TextBox()
Me.Controls.Add(txt)
txt.Top = cLeft * 25
txt.Left = 100
txt.Text = "TextBox " & Me.cLeft.ToString
txt.Name = "TextBox" & Me.cLeft.ToString
cLeft = cLeft + 1
Return txt
AddHandler txt.TextChanged,AddressOf Me.text_change
Dim txt1 As New System.Windows.Forms.TextBox()
Me.Controls.Add(txt1)
txt1.Top = cLeft * 15
txt1.Left = 90
txt1.Text = "1 " & Me.cLeft.ToString
txt1.Name = "TextBox" & Me.cLeft.ToString
cLeft = cLeft + 1
Return txt
AddHandler txt1.TextChanged,AddressOf Me.text1_change
End Function
Private Sub text_change(ByVal sender As System.Object,ByVal e As System.EventArgs)
MessageBox.Show("The First Text has Been Change.")
End Sub
Private Sub text1_change(ByVal sender As System.Object,ByVal e As System.EventArgs)
MessageBox.Show("The Second Text has Been Change.")
End Sub
解决方法
看你贴的第9行代码:
list
当执行到达该行时,该方法完成并且不执行后续代码行。这意味着事件处理程序没有附加到第一个 Return txt
并且第二个甚至没有被创建。
你一开始为什么要退货?您正在创建两个 TextBox
,那么返回其中一个有什么意义呢?将方法设为 TextBoxes
并去掉 Sub
语句,或者在方法末尾将两个 Return
一起返回到数组等中。