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
展开
 我来答
网海1书生
科技发烧友

2015-11-20 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部

单个的动态控件可以设置事件,比如:

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方法动态加入,这样生成的动态控件数组就与手工生成的控件数组完全一样了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式