У меня есть checklistbox в моей программе, который позволяет пользователю контролировать, какая из 9 возможных серий включена на графике. Я сделал это, только две серии можно включить на графике в любое время, используя следующий код:C# - Автоматическая проверка элементов в checklistbox при проверке определенного элемента
//if there are two checked items
if (e.NewValue == CheckState.Checked && chListBoxChartSeries.CheckedItems.Count >= 2)
{
//new item cannot be checked
e.NewValue = CheckState.Unchecked;
}
Это прекрасно работает. Однако сам и мой конечный пользователь обнаружили, что одна конкретная серия (checklistbox и индекс серии 2) не имеет никакого значения, если она не отображается по сравнению с двумя другими сериями (индексы 3 и 4). Я попытался изменить приведенный выше код, чтобы узнать, что элемент в индексе 2 проверен и разрешить мне - или даже автоматически - проверять элементы по соответствующим индексам. Полнофункциональный показано ниже:
private void chListBoxChartSeries_ItemCheck(object sender, ItemCheckEventArgs e)
{
int indexA = 2;
//specify indexes for related parameters
int indexB = 3;
int indexC = 4;
//give positive checkstate
CheckState autochecked = CheckState.Checked;
if (chListBoxChartSeries.CheckedItems.Contains(chListBoxChartSeries.Items[indexA]))
{
//do not limit number of checked items
//apply checkstates to items at this index
chListBoxChartSeries.SetItemCheckState(indexB, autochecked);
chListBoxChartSeries.SetItemCheckState(indexC, autochecked);
}
else //does not contain item at index 2
{
//if there are two checked items
if (e.NewValue == CheckState.Checked && chListBoxChartSeries.CheckedItems.Count >= 2)
{
//new item cannot be checked
e.NewValue = CheckState.Unchecked;
}
}
}
Это забросила все виды ошибок на меня, хотя ни один из них не был особенно информативным и ответы, которые я нашел их на этом форуме, кажется, не относятся к мой вопрос! Я действительно не знаю, как далеко я от достижения того, чего я пытаюсь достичь, поэтому любые слова совета или точки в правильном направлении будут огромной помощью!
Спасибо, Марк
Привет, спасибо за ваш ответ. Я тестировал это и, похоже, работает на начальном этапе, я уверен, что смогу очистить любые проблемы, которые он бросает на меня отсюда! Спасибо @MichaelMcMullin – marcuthh