在vb.net winform中,有一个checklistbox,一个lable,这个lable是用来保存checklistbox中选中的项的文本,如果checklistbox中原有两个被选中,如今继续再选中另一个项,取消原来选中的的一项,怎么取出我取消掉的一项和新增加的一项的文本内容
时间: 2024-02-03 12:13:48 浏览: 216
VB.NET Winform窗口后台运行+防多开+开机后台自动启动示例-BgProcessTemplate.rar
5星 · 资源好评率100%
可以使用 CheckedListBox 的 ItemCheck 事件来实现这个功能。在该事件中,可以获取当前操作的项的索引以及是否被选中,然后结合之前选中的项的列表和当前选中的项的索引,进行相应的处理。
以下是一个示例代码:
```vb.net
Private selectedItems As New List(Of String)
Private Sub CheckedListBox1_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
Dim currentItem = CheckedListBox1.Items(e.Index).ToString()
If e.NewValue = CheckState.Checked Then
' 添加新选中的项
selectedItems.Add(currentItem)
Else
' 移除取消选中的项
selectedItems.Remove(currentItem)
End If
' 更新 Label 显示的文本
Label1.Text = String.Join(", ", selectedItems)
End Sub
```
在这个示例中,我们定义了一个名为 `selectedItems` 的列表,用于保存之前选中的项的文本内容。在 `ItemCheck` 事件中,我们首先获取当前操作的项的文本内容,然后根据 `e.NewValue` 的值判断当前项是否被选中,如果被选中,则将其添加到 `selectedItems` 列表中;否则,从 `selectedItems` 列表中移除该项。最后,我们使用 `String.Join` 方法将 `selectedItems` 列表中的文本内容用逗号分隔,更新 Label 显示的文本。
阅读全文