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解释得清楚些,谢谢....
展开
 我来答
lzh741206
2008-04-04 · TA获得超过1192个赞
知道大有可为答主
回答量:1929
采纳率:100%
帮助的人:2783万
展开全部
你的代码看不太懂
怎么一会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的项
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友29ee4989f
2008-04-04 · TA获得超过500个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:631万
展开全部
你要删除的i比你Combo3中的项大了就会错这种错,你在if InStr(hzpy, srzm) <> 1 Then 后面输出i的值看看,学会自己调试程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友55e8ca0
2008-04-04 · TA获得超过342个赞
知道小有建树答主
回答量:675
采纳率:0%
帮助的人:576万
展开全部
删除的循环要倒过来

For i = Combo1.ListCount - 1 to 0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式