У меня есть контрольный список, который содержит следующую информацию:
*************
*__All Cells*
*__Cell A *
*__Cell B *
*__Cell C *
*__Cell D *
*************
Я хочу проверить каждое поле, которое я хочу, однако я хочу, чтобы проверить флажок "Все ячейки", все поля должны быть отмечены автоматически, я уже могу это сделать. Часть, которая нуждается в помощи, если я этого хочу, когда снимите флажок "Все ячейки", все ячейки должны быть сняты.
Вот код, который я использую. Пожалуйста, помогите мне с этим.
private void Cells_CheckedListBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (Cells_CheckedListBox.GetItemChecked(Cells_CheckedListBox.Items.IndexOf("All Cells")))
{
for (int i = 0; i < Cells_CheckedListBox.Items.Count; i++)
{
Cells_CheckedListBox.SetItemCheckState(i, CheckState.Checked);
}
}
}
Вы, кажется, делаете это в неправильном случае вообще. Вы должны обработать событие ItemCheck
.
private void Cells_CheckedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
int allIndex = Cells_CheckedListBox.Items.IndexOf("All Cells");
if (e.Index == allIndex)
{
for (int i = 0; i < Cells_CheckedListBox.Items.Count; i++)
{
if (i != allIndex)
Cells_CheckedListBox.SetItemCheckState(i, e.NewValue);
}
}
}