gpt4 book ai didi

vb.net - 从 Windows 窗体上的 CheckedListBox 取消选中项目和 "Select All"选项

转载 作者:行者123 更新时间:2023-12-04 17:46:43 26 4
gpt4 key购买 nike

我添加了一个复选框列表,其中包含一些名称和一个全选选项。当我选择(全选)选项时,我可以选中复选框列表中的所有复选框。

这里的问题是,每当我取消选中复选框列表中的任何选项时,我都无法取消选中(全选)选项。

下面是为(全选)功能附加的 vb.net 代码。

Private Sub ChkLB_dl_name_cb_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles ChkLB_dl_name_cb.ItemCheck        
If e.Index = 0 Then
Dim newCheckedState As Integer = e.NewValue
For i As Integer = 1 to ChkLB_dl_name_cb.Items.Count - 1
Me.ChkLB_dl_name_cb.SetItemCheckState(i, newCheckedState)
Next
End If
End Sub

下面是窗口窗体上复选框列表的图像,供您引用。

enter image description here .

最佳答案

通常我会使用Boolean 变量来避免为您以编程方式更改的每个项目调用此处理程序。这也将解决您无法取消选中第一项的问题:

Private updatingListProgramatically As Boolean = False

Private Sub ChkLB_dl_name_cb_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles ChkLB_dl_name_cb.ItemCheck
If updatingListProgramatically Then Return

If e.Index = 0 Then
updatingListProgramatically = True
For i As Integer = 1 To ChkLB_dl_name_cb.Items.Count - 1
Me.ChkLB_dl_name_cb.SetItemCheckState(i, e.NewValue)
Next
Else
Dim checked As Boolean = e.NewValue = CheckState.Checked
If Not checked Then
updatingListProgramatically = True
Me.ChkLB_dl_name_cb.SetItemCheckState(0, CheckState.Unchecked)
End If
End If

updatingListProgramatically = False
End Sub

Else block 似乎是您所要求的。

关于vb.net - 从 Windows 窗体上的 CheckedListBox 取消选中项目和 "Select All"选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48148098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com