Если у меня есть элемент, который я проверяю, а затем я решил снять флажок, код несколько считает, что он по-прежнему проверяется. В результате, когда я нажимаю «Перейти», в таблице также отображается непроверенный элемент. В этом случае Брэндон был сначала проверен, а затем снят. Несмотря на то, что имя больше не «проверено», таблица все еще поднимает его.C# Элемент в checkedListBox выбирается, даже если флажок не отмечен
Это то, что у меня есть:
string filterstring = "";
private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == CheckState.Checked)
filterstring = "Responsible = '" + checkedListBox.Items[e.Index].ToString() + "' OR";
else
if (e.NewValue == CheckState.Unchecked)
filterstring = "";
foreach (object itemChecked in checkedListBox.CheckedItems)
{
filterstring += " Responsible = '" + itemChecked.ToString() + "' OR";
}
filterstring = filterstring.Substring(0, filterstring.LastIndexOf("OR"));
}
Я подозреваю, что ключ находится в этой части кода. Без этого оно исключает исключение:
private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == CheckState.Unchecked)
filterstring = "";
}
Любые помощь приветствуется!
Спасибо Ларс. К сожалению, он оставляет мне исключение: «Необработанное исключение типа« System.ArgumentOutOfRangeException »произошло в mscorlib.dll Дополнительная информация: Длина не может быть меньше нуля." –
@ P.C Если это происходит в вашей строке LastIndexOf, ну, это другая проблема. Ваш LastIndexOf возвращает -1, который вы используете для длины текста, следовательно, kaboom. – LarsTech
Nevermind ... мой плохой, я неправильно установил код. Ваш ответ был с самого начала. –