Программно проверка контрольного ящика паспорта
-
09-10-2019 - |
Вопрос
У меня есть билет «CheckedListbox», мне нужно проверить на нем некоторые элементы. Я пытался со следующим кодом ...
if (!string.IsNullOrEmpty(search.Languages))
{
string[] langs = search.Languages.Split(',');
for (int i = 0; i < (langs.Length - 1); i++)
{
for (int j = 0; j < clbLang.Items.Count; j++)
{
string lng = clbLang.Items[j] as string;
if (lng.Trim() == langs[i])
{
clbLang.SetItemChecked(j, true);
break;
}
}
}
}
Без ошибок, отладочное исполнение проходит черезпроверка«Процесс, но, наконец, я не вижу ничего, проверенного на нем.
Затем я добавил кнопку и добавил следующий код к нему. (нажмите Проверьте все элементы)
private void button9_Click(object sender, EventArgs e)
{
for (int i = 0; i < clbLang.Items.Count; i++)
{
clbLang.SetItemChecked(i, true);
}
}
Это "проверка«Все предметы, пожалуйста, скажите, если кто-нибудь сможет увидеть проблему здесь ...?
Решение
Наконец узнал, это Ошибка введен MS.
Здесь хорошо объясняется.
Проблема легко воспроизвести. Просто скрыть и покажу и показать файл погрузок CheckedListblistbox, и вы заметите, как ранее проверенные элементы получают незаменимые.
CheckedListbox setiTemcecked Метод не работает
Поэтому мы должны найти обходной путь ... Я пробовал так, чтобы он работал хорошо ...
В месте, где я звонил проверка предметов я добавил следующие ... Я добавляю то, что мне нужно проверить Ярлык контроля.
if (!string.IsNullOrEmpty(search.Languages))
{
clbLang.Tag = search.Languages;
}
Затем следующий код в этом мероприятии «VisibleChangeded () () ()».
private void clbLang_VisibleChanged(object sender, EventArgs e)
{
string lngs = clbLang.Tag as string;
if (!string.IsNullOrEmpty(lngs))
{
string[] langs = lngs.Split(',');
foreach (string lang in langs)
{
int j = 0;
foreach (DataRowView row in clbLang.Items)
{
if (row != null)
{
string lng = row[1] as string;
if (lng.Trim() == lang)
{
clbLang.SetItemChecked(j, true);
break;
}
}
j++;
}
}
}
}
Это хорошо со мной хорошо работает, надеюсь, это принесет вам пользу ...