来看下这段代码
Private Sub CmdRight_Click()
Dim X As Integer
While LstLeft.SelCount > 0
For X = 0 to LstLeft.LstCount - 1
If LstLeft.Selected(X) = True Then
LstRight.AddItem LstLeft.List(X)
LstLeft.RemoveItem X
Exit For
End If
Next X
Wend
End Sub
其中listleft和listright是两个带复选框的list控件
我郁闷发的是这是不是陷入死循环了啊,为什么每次启动运行就是程序无响应啊
这段代码除了ListCount写成了LstCount外,没发现有什么问题,运行也正常。
Private Sub CmdRight_Click()
Dim X As Integer
While LstLeft.SelCount > 0
For X = 0 To LstLeft.ListCount - 1 'ListCount写错
If LstLeft.Selected(X) = True Then
LstRight.AddItem LstLeft.List(X)
LstLeft.RemoveItem X
Exit For
End If
Next X
Wend
End Sub
这段代码的功能其实只用一个循环就可以实现。
Private Sub CmdRight_Click()
Dim X As Integer
While LstLeft.SelCount > 0 And X < LstLeft.ListCount
If LstLeft.Selected(X) Then
LstRight.AddItem LstLeft.List(X)
LstLeft.RemoveItem X
Else
X = X + 1
End If
Wend
End Sub
废话 ! 这当然四循环! 你套了两个循环! 一个是while ! 一个是 for ! 而且一个条件还不对! 不死循环 才怪!
其中listleft和listright是两个带复选框的list控件 你代码里面是LstLeft LstRight
并且不需要使用While ... Wend
不知道你要这样用
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!