一个几乎不可能出现的问题,但是被我碰到了。大家来看看这个问题是如何虐待我的。

qyh 2001-06-19 12:07:00
在VB6.0
向一个窗口中加入了三个TextBox并编为一个控件数组,其下标从0-2控件名是Text1
再加入三个OptionButton并编为一个控件数组,其下标从0-2,控件名是Option1

Private Sub Option1_Click(Index As Integer)
Dim i As Long
For i = 0 To me.Text1.UBound
If i = Index Then
me.Text1(Index).Visible = True '此处有时会出现控件数组2不存在
Else
me.Text1(i).Visible = False
End If
Next i
If me.Text1(Index).Visible Then
If me.Text1(Index).Enabled Then
me.Text1(Index).SetFocus
End If
End If
End Sub


运行时有时会出现 控件数组2不存在 的错误。这是为什么啊????其它代码中绝对没有写过 Unload Text1(2) 这样的语句。
...全文
127 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qyh 2001-10-21
  • 打赏
  • 举报
回复
1
tigerwood12345 2001-06-19
  • 打赏
  • 举报
回复
是你的下标错了,检查INDEX,看看到底对不对!!!
cqq_chen 2001-06-19
  • 打赏
  • 举报
回复
你有代码应该没有什么问题的,不过最好写成以下方式:
Private Sub Option1_Click(Index As Integer)
Dim i As Long
For i = 0 To 2
If i = Index Then
Text1(Index).Visible = True '此处有时会出现控件数组2不存在
Else
Text1(i).Visible = False
End If
Next i
If Text1(Index).Visible Then
If Text1(Index).Enabled Then
Text1(Index).SetFocus
End If
End If
End Sub
在程序中加入ME显的有些多余。

shawls 2001-06-19
  • 打赏
  • 举报
回复
关注!
DragonJiang 2001-06-19
  • 打赏
  • 举报
回复
是不是你的下标值错了?
请检查!
ttyp 2001-06-19
  • 打赏
  • 举报
回复
完全正常啊
DeD 2001-06-19
  • 打赏
  • 举报
回复
没有发现,最好在这个地方查看一下WATCH WINDOW 或者DEBUG WINDOW
例如 在DEBUG WINDOW 中执行
?me.Text1(2).TEXT
如果提示错误说明Text1(2)确实不存在

jisheng 2001-06-19
  • 打赏
  • 举报
回复
你搞错了吧,检查一下最后一个text1的index值!
在我这里运行通过了,还是用你的代码。
qyh 2001-06-19
  • 打赏
  • 举报
回复
wwwwalker 2001-06-19
  • 打赏
  • 举报
回复
如果对内存要求不大的话,为什么不使用一个窗体变量?省好多事!
dim SelectNo as integer
Private Sub Option1_Click(Index As Integer)
if Index<>SelectNo then
me.Text1(SelectNo).Visible = false
Selectno=index
me.Text1(SelectNo).Visible = True
me.Text1(SelectNo).SetFocus
Endif
End Sub



无言无忌 2001-06-19
  • 打赏
  • 举报
回复
这样改就好了:
Private Sub Option1_Click(Index As Integer)
Dim i As Long
For i = 0 To me.Text1.UBound-1
me.Text1(i).Visible = False
Next i
me.Text1(Index).Visible = True
me.Text1(Index).SetFocus
End Sub


niqiu 2001-06-19
  • 打赏
  • 举报
回复
是呀,我试了也没错呀,查下标!!!!!!!!!!!!!
qyh 2001-06-19
  • 打赏
  • 举报
回复
可恨的是有时才会出错。

不过大部分时候不会有错,真是受不了.
suhu 2001-06-19
  • 打赏
  • 举报
回复
For i = 0 To me.Text1.UBound-1

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧