Что ж, ваша проблема в основном заключается в этих строках в ladujZBazy()
:
checkedListBox1.Items.Clear();
indexes.Clear();
, куда вы звоните, чтобы очистить все содержимое checkedListBox1
и его сохраненных индексов.
Итак, при каждом вызове вашей функции вы очищаете все содержимое из checkedListBox1
, а затем воссоздаете / добавляете обратно содержимое .Следовательно, он просто обновляет все элементы в checkedListBox1
(, т.е. удаляет все уже проверенные элементы в списке. ).
Итак, у нас есть 2 способа, которыми мы можем сделатьэто работает.
- Мы можем добавить параметр
Boolean
к ladujZBazy()
, который будет определять, очистить checkedListBox1
или нет.
И ваш измененный ladujZBazy()
будет выглядеть примерно так:
void ladujZBazy(string mustContains, bool dropIndexes)
{
// the below code will only run the value is supplied as TRUE
if(dropIndexes)
{
checkedListBox1.Items.Clear();
listSurowceTabela.Clear();
indexes.Clear();
}
// your rest of the code goes here
}
И затем вызывать его из события TextChanged
вашего текстового поля как:
ladujZBazy(textBox1.Text,false);// pass TRUE to clear the checked items
Или мы можем переместить индекс и проверенный элемент Клиринг и логика обновления CheckListBox в отдельную функцию как:
private void refreshChkListBox()
{
checkedListBox1.Items.Clear();
listSurowceTabela.Clear();
indexes.Clear();
//your code to append items to list goes here
}
и позже вызватьэта функция обновляет CheckListBox
, если вам это нужно.