C# 限制CheckedListBox中的选中项

C# 限制CheckedListBox中的选中项,c#,checkedlistbox,C#,Checkedlistbox,我有一个带有折线图的主窗体,它可以显示10个可能的系列。这些系列中的数据将由用户输入文本框并添加到相应的列表中,然后这些列表将逐个索引地传输到相应的图表系列中 我已经建立了一个名为Options的二级表单,我希望它可以让用户控制在任何时候显示哪些序列。我已经尝试使用一个checkedlistbox来实现这一点,它的项目名称与图表系列的名称匹配。 这很好,但我的用户要求图表上同时只有两个系列,以避免混淆 我要寻找的是一种对checkedlistbox进行编程的方法,这样一旦选中了两个项目,在删除其

我有一个带有折线图的主窗体,它可以显示10个可能的系列。这些系列中的数据将由用户输入文本框并添加到相应的列表中,然后这些列表将逐个索引地传输到相应的图表系列中

我已经建立了一个名为Options的二级表单,我希望它可以让用户控制在任何时候显示哪些序列。我已经尝试使用一个checkedlistbox来实现这一点,它的项目名称与图表系列的名称匹配。 这很好,但我的用户要求图表上同时只有两个系列,以避免混淆

我要寻找的是一种对checkedlistbox进行编程的方法,这样一旦选中了两个项目,在删除其中一个现有检查之前,就不能再检查了。 这似乎是一个非常简单的概念,但我似乎找不到如何逐个“禁用”列表项。以下是我目前掌握的情况:

public void disableUnchecked()
{
    int checkedCount = 0; //tracks how many items are already checked

    //loop through all items in listbox
    for (int index = 0; index < chListBoxChartSeries.Items.Count; ++index)
    {
        //if item is checked
        if (chListBoxChartSeries.CheckedItems.Contains(chListBoxChartSeries.Items[index]))
        {
            //increment tracker variable
            ++checkedCount;
        }
    }

    //once loop has finished, if 2 items are checked
    if (checkedCount == 2)
    {
        //don't let anything else be checked
        //something to disable unchecked items
    }
}
public void disableUnchecked()
{
int checkedCount=0;//跟踪已检查的项目数
//循环浏览列表框中的所有项目
对于(int index=0;index
我不认为我是遥远的,只是需要找到一种方法来访问和禁用个别项目。如果有人能给我指出正确的方向,我将非常感激

谢谢


标记

See:See:要使其发挥作用,必须将
checkedListBox1\u ItemCheck
添加到
checkedListBox1.ItemCheck
,例如:
checkedListBox1.ItemCheck+=checkedListBox1\u ItemCheck
要使其发挥作用,需要将
checkedListBox1\u ItemCheck
添加到
checkedListBox1.ItemCheck
,例如:
checkedListBox1.ItemCheck+=checkedListBox1\u ItemCheck
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (e.NewValue == CheckState.Checked && checkedListBox1.CheckedItems.Count >= 2)
        e.NewValue = CheckState.Unchecked;
}