CheckedListBox检查/取消选中检测

时间:2016-05-11 14:52:19

标签: c# winforms checkedlistbox

我在Winforms应用程序中有一个CheckedListBox,其中包含Months as Items(如1月,2月,3月等)我试图实现的功能是,当任何项目被Checked时,会弹出一条消息说它已被检查。当取消选中相同的项目时,该消息应该说它已取消选中。我已经尝试过下面的代码,但它不能按原样运行。目前,当选中或取消选中任何项目时,将显示相同的消息集。

CheckOnClick =真

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

我希望你理解我的问题。请在c#中建议正确的代码。提前致谢

1 个答案:

答案 0 :(得分:5)

尝试针对ItemCheck事件进行编码:

  

当项目的已检查状态发生变化时发生。

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更好,因为只要用户选择新项目,而不是选中/取消选中的项目,就会触发此项目。