我假设您在这里关注 WinForms CheckedListBox (CLB)。我认为解决您的问题的更好方法是附加到 CLB 的“ItemCheck”事件。
private void AttachEvents()
{
// ....
this.checkedListBox.ItemCheck += CheckedListBoxOnItemCheck;
}
private void CheckedListBoxOnItemCheck(object sender, ItemCheckEventArgs itemCheckEventArgs)
{
var item = checkedListBox.Items[itemCheckEventArgs.Index];
System.Diagnostics.Debug.WriteLine("Item in question: " + item);
System.Diagnostics.Debug.WriteLine("Previous check state: " + itemCheckEventArgs.CurrentValue);
System.Diagnostics.Debug.WriteLine("New check state: " + itemCheckEventArgs.NewValue);
}
根据您的应用需求,您还应该执行以下操作:
this.checkedListBox.CheckOnClick = true;
然后,您的 CLB 将按照大多数用户的预期运行。
问候,亚历克斯