Я использую C # и мне нужна помощь.У меня есть DataGridView, который я хотел бы отфильтровать (показать / скрыть столбцы) на основе выбора пользователя из CheckedListBox.Внутри CheckedListBox я перечислил несколько элементов, и это имена столбцов из DataGridView: все эти столбцы по умолчанию скрыты. CheckedListBox items
Теперь, если пользователь выбирает THERMAL, я бы хотел показать THERMAL Column в DataGridView.Если пользователь отменит выбор THERMAL, я хотел бы скрыть THERMAL Column в DataGridView.Если пользователь выбирает / отменяет выбор нескольких элементов, я хотел бы показать / скрыть все эти элементы из DataGridView.Я надеюсь, что это имеет смысл.
Вот код, который у меня есть:
private void CLB_SHOW_HIDE_SelectedIndexChanged(object sender, EventArgs e)
{
string col = "";
for (int i = 0; i < CLB_SHOW_HIDE.CheckedItems.Count; i++)
{
if (col == "")
{
col = CLB_SHOW_HIDE.GetItemText(CLB_SHOW_HIDE.CheckedItems[i]);
this.DGV_FEATURE.Columns[col].Visible = true;
}
else
{
col += ", " + CLB_SHOW_HIDE.GetItemText(CLB_SHOW_HIDE.CheckedItems[i]);
this.DGV_FEATURE.Columns[col].Visible = false;
}
}
}
Вот проблема ... Если я удаляю оператор else, я могу показать все столбцы только правильноесли я пойду снизу вверх (см. мою фотографию выше).Если я пойду сверху вниз, будет показан только первый элемент.Тогда мне придется отменить выбор этого элемента и выбрать другой для его отображения.
Если я добавлю еще оператор, как в приведенном выше коде, я получу это Ошибка
Кто-нибудь может пролить свет на это, пожалуйста?