VB.net checklistbox 如何删除 打勾的项目
各位高手,VB.net checklistbox 如何删除 打勾的项目。实在想不出来了大家帮帮忙,谢谢了 --------------------编程问答-------------------- 如果只是单选的话,用这个好办Dim b As Boolean
Dim i As Integer = Me.CheckedListBox1.SelectedIndex
b = Me.CheckedListBox1.GetItemChecked(i)
If b = True Then
Me.CheckedListBox1.Items.RemoveAt(i)
End If
--------------------编程问答-------------------- 非常感谢sjm2003,但是如果多选呢? --------------------编程问答-------------------- 写个循环把每个的都改为FLASE --------------------编程问答-------------------- 能给个完整代码吗?谢谢了,我实在搞的头大了,呵呵。 --------------------编程问答-------------------- For a As Integer = 0 To Me.CheckedListBox1.Items.Count - 1
For i As Integer = 0 To Me.CheckedListBox1.CheckedItems.Count - 1
If Me.CheckedListBox1.Items(a) = Me.CheckedListBox1.CheckedItems.Item(i) Then
Me.CheckedListBox1.Items.RemoveAt(a)
End If
Next
Next --------------------编程问答-------------------- 只能循环删 --------------------编程问答-------------------- 感谢ping502 和大家的关注,但是502给的代码也是只可以删除勾选的1项,如果勾选数目大于1的话就会出错。5555~我可咋办~ --------------------编程问答-------------------- 不能改用listbox吗?那样选择多条后,用循环删除不会出错!
checklistbox我用for each in 和for 都试过了,似乎都会出错,foreach错误是,目标不在里面
或许要用多个 循环和判断吧,搞不清楚!
但是要删除多个,只能循环!
路过。。。。。。。。。。。。。。。帮你顶个。。。。。。。。。。。。。。。。。。。。。 --------------------编程问答-------------------- 如果可以换其它控件的话,其实要解决你这问题很简单 --------------------编程问答-------------------- 看来只能忍痛割爱了,其实Checklistbox用起来比普通listbox要酷很多 --------------------编程问答-------------------- Dim list_num As Integer = CheckedListBox1.Items.Count - 1
For a As Integer = 0 To list_num
For i As Integer = 0 To CheckedListBox1.Items.Count - 1
If CheckedListBox1.CheckedItems.Count = 0 Then
Exit For
End If
If CheckedListBox1.Items(i) = CheckedListBox1.CheckedItems.Item(0) Then
CheckedListBox1.Items.RemoveAt(i)
Exit For
End If
Next
Next --------------------编程问答--------------------
--------------------编程问答-------------------- Dim indexes As CheckedListBox.CheckedIndexCollection = Me.CheckedListBox1.CheckedIndices
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < this.checkedListBox1.Items.Count;i++ )
{
if (this.checkedListBox1.GetItemChecked (i)==true)
{
this.checkedListBox1.Items.Remove(this.checkedListBox1.Items[i]);
}
}
}
If indexes.Count > 0 Then
For Each index In indexes
Me.CheckedListBox1.Items.RemoveAt(indexes(0))
Next
Else
MsgBox("No any selection.")
End If
我用vb2008的. --------------------编程问答-------------------- 删除的时候,如果是多选,需要从索引的最大值循环到 0 才能正常删除。
Dim i As Integer
For i = CheckBoxList1.Items.Count - 1 To 0 Step -1
If CheckBoxList1.GetItemChecked(i) Then
CheckBoxList1.Items.RemoveAt(i)
End If
Next
补充:.NET技术 , VB.NET