CheckedListBoxCheck/Uncheck检测

CheckedListBox Check/Uncheck detection

我在 Winforms 应用程序中有一个 CheckedListBox,其中包含月份作为项目(如一月、二月、三月等)我正在尝试实现这样的功能,即当任何项目被选中时,应该弹出一条消息说它已经检查。而当取消选中同一项目时,消息应说明它已取消选中。我已经尝试了下面的代码,但它没有按预期工作。目前,选中或取消选中任何项目时,都会显示同一组消息。

CheckOnClick=true

    private void clbMonthly_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (clbMonthly.GetItemChecked(1) == true)
        {
            MessageBox.Show("Item 1 checked");
        }
        else
        {
            MessageBox.Show("Item 1 unchecked");
        }
        //........
    }

希望您能理解我的 question.Please 建议正确的 C# 代码。提前致谢

尝试针对 ItemCheck 事件编码:

Occurs when the checked state of an item changes.

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    string itemText = checkedListBox1.Items[e.Index].ToString();
    if (e.NewValue == CheckState.Checked)
    {
        MessageBox.Show(itemText + " checked");
    }
    else
    {
        MessageBox.Show(itemText + " unchecked");
    }
}

这比 SelectedIndexChanged 好,因为每当用户选择一个新项目时都会触发这个,而不是一个项目得到 checked/unchecked。