COMBOX中的项为什么无法删除?
PrivateSubCombo1_KeyPress(KeyAsciiAsInteger)x=Chr(KeyAscii)temp=srzm+xsrzm=tempFori=0...
Private Sub Combo1_KeyPress(KeyAscii As Integer)
x = Chr(KeyAscii)
temp = srzm + x
srzm = temp
For i = 0 To Combo1.ListCount - 1
hzpy = ""
For ii = 1 To Len(Combo1.List(i))
hzpy = hzpy & pinyin(Mid(Combo1.List(i), ii, 1))
Next ii
If InStr(hzpy, srzm) <> 1 Then
Combo3.RemoveItem i '操作后针对这句提示"无效的调用或参数"
End If
Next i
On Error Resume Next
Combo1.ListIndex = i
End Sub
Combo3.RemoveItem i '操作后针对这句提示"无效的调用或参数"
这句写错了,应该是Combo1.RemoveItem i
补充说明一下:
这段程序是用键盘敲字母来搜询下拉列表框的,列表框中的内容都是汉字的,所以看起来有些繁索,不好意思..
请各位DX解释得清楚些,谢谢.... 展开
x = Chr(KeyAscii)
temp = srzm + x
srzm = temp
For i = 0 To Combo1.ListCount - 1
hzpy = ""
For ii = 1 To Len(Combo1.List(i))
hzpy = hzpy & pinyin(Mid(Combo1.List(i), ii, 1))
Next ii
If InStr(hzpy, srzm) <> 1 Then
Combo3.RemoveItem i '操作后针对这句提示"无效的调用或参数"
End If
Next i
On Error Resume Next
Combo1.ListIndex = i
End Sub
Combo3.RemoveItem i '操作后针对这句提示"无效的调用或参数"
这句写错了,应该是Combo1.RemoveItem i
补充说明一下:
这段程序是用键盘敲字母来搜询下拉列表框的,列表框中的内容都是汉字的,所以看起来有些繁索,不好意思..
请各位DX解释得清楚些,谢谢.... 展开
展开全部
你的代码看不太懂
怎么一会Combo1一会Combo3?
不过应该是下面的问题
用反序的For循环
也就是说代码改成
For i =Combo1.ListCount - 1 to 0 step -1
RemoveItem每次操作都会改变Combo1的数据集合,必须要反序遍历
比如你的Combo1有1,2,3,4,5五个数
用正序For循环时
开始i=0
如果先删除1
此时Combo1变成了2,3,4,5
下一次进入循环体时
i=1,跳到数据为3的项
怎么一会Combo1一会Combo3?
不过应该是下面的问题
用反序的For循环
也就是说代码改成
For i =Combo1.ListCount - 1 to 0 step -1
RemoveItem每次操作都会改变Combo1的数据集合,必须要反序遍历
比如你的Combo1有1,2,3,4,5五个数
用正序For循环时
开始i=0
如果先删除1
此时Combo1变成了2,3,4,5
下一次进入循环体时
i=1,跳到数据为3的项
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要删除的i比你Combo3中的项大了就会错这种错,你在if InStr(hzpy, srzm) <> 1 Then 后面输出i的值看看,学会自己调试程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
删除的循环要倒过来
For i = Combo1.ListCount - 1 to 0
For i = Combo1.ListCount - 1 to 0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询