VB 动态控件数组 响应事件 10
VB中动态生成的控件数组怎么响应事件?比如动态生成的100个textbox(二维,ansText(0,0)到ansText(9,9))当在ansText(i,j)中点回车...
VB中动态生成的控件数组怎么响应事件?
比如
动态生成的100个textbox (二维,ansText(0,0) 到ansText(9,9))
当在ansText(i,j)中点回车后,ansText(i,j+1)自动获得焦点.
控件是通过一下命令动态生成的
For j = 0 To 9
For i = 0 To 9
Set ansText(j, i) = Controls.Add("VB.textBox", "ansText" & CStr(j) & "_" & CStr(i))
With ansText(j, i)
.Left = 1350 + 1500 * j
.Top = 1000 + 515 * (i \ 10)
End With
Next i
Next j 展开
比如
动态生成的100个textbox (二维,ansText(0,0) 到ansText(9,9))
当在ansText(i,j)中点回车后,ansText(i,j+1)自动获得焦点.
控件是通过一下命令动态生成的
For j = 0 To 9
For i = 0 To 9
Set ansText(j, i) = Controls.Add("VB.textBox", "ansText" & CStr(j) & "_" & CStr(i))
With ansText(j, i)
.Left = 1350 + 1500 * j
.Top = 1000 + 515 * (i \ 10)
End With
Next i
Next j 展开
1个回答
展开全部
单个的动态控件可以设置事件,比如:
Dim WithEvents txt1 As TextBox
Private Sub Form_Load()
Set txt1 = Controls.Add("VB.TextBox", "txt1")
txt1.Visible = True
End Sub
Private Sub txt1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then MsgBox "你按了回车键"
End Sub
但是动态控件数组则不行,这也许是VB6的bug,或者当初微软根本就不想有这个功能。
所以建议最好不要用这种动态生成控件数组的方法,而是采用“半动态”的方式,就是窗体上先放入控件数组的第一个元素(Index=0),然后其他元素就可以在程序中用Load方法动态加入,这样生成的动态控件数组就与手工生成的控件数组完全一样了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询