我正在创建一个简单的应用程序,使我能够将信息输入到一些文本框中,然后在按下一个按钮(称为Addbtn
)后将它们组合成一个字符串。此字符串将添加到名为ConcernsChk
的复选框列表中。当完成一个或多个这些字符串时,用户将单击相应的复选框并单击一个按钮(称为CompleteSortBtn
),该按钮将该字符串传输到另一个复选框列表。我遇到的问题是我的checkboxlist项目不会根据其检查状态删除。他们从顶部开始一次删除一个并向下移动。
以下是相关代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles CompleteSortBtn.Click
Dim Disposition As String = ""
Dim i As Integer
If ConcernsChk.CheckedItems.Count > 0 Then
For i = 0 To (ConcernsChk.Items.Count - 1)
If ConcernsChk.GetItemChecked(i) = True Then
Disposition = ConcernsChk.Items(i)
DispositionChk.Items.Add(Disposition)
ConcernsChk.Items.Remove(Disposition)
End If
Next
Else
MessageBox.Show("Please add Concerns before marking them complete.")
End If
我不断得到一个错误,我不能等于3,我不知道该怎么办。无论是在复选框列表中还是10个项目,都会抛出此信息。
长话短说,当我推送CompleteSortBtn时,我希望程序做4件事:1。通过ConcernChk搜索2.找到复选框3.将复选框发送到DispositionChk 4.从ConcernChk删除选中的项目
对长篇文章表示歉意,并感谢您提供的任何帮助。
答案 0 :(得分:0)
你正在迭代虽然没有检查项目的项目....计数会有所不同。
由于您要从列表中删除项目,因此您需要从头到尾进行操作。
For i = (ConcernsChk.Items.Count - 1) to 0 step - 1
If ConcernsChk.Items(i).Checked Then
Disposition = ConcernsChk.Items(i)
DispositionChk.Items.Add(Disposition)
ConcernsChk.Items.RemoveAt(I)
End If
Next