2016-05-11 4 views
1

У меня есть CheckedListBox в приложении Winforms, содержащем Months as Items (например, январь, февраль, март и т. Д.). Я пытаюсь добиться того, что когда какой-либо элемент проверяется, должно появиться сообщение о том, что он был проверен. В то время, когда один и тот же элемент не отмечен, в сообщении должно быть указано, что он не установлен. Я пробовал код ниже, но он не работает, как хотелось. В настоящее время, когда какой-либо элемент отмечен или снят, отображается тот же самый набор сообщений.CheckedListBox Check/Uncheck detection

CheckOnClick = истинный

private void clbMonthly_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (clbMonthly.GetItemChecked(1) == true) 
     { 
      MessageBox.Show("Item 1 checked"); 
     } 
     else 
     { 
      MessageBox.Show("Item 1 unchecked"); 
     } 
     //........ 
    } 

Я надеюсь, вы понимаете мое question.please, предложить правильный код в C#. Заранее спасибо

+0

Вы проверяете и снимаете флажок с индексом 1 (предположительно в феврале) в 'clbMonthly'? –

+0

Да, вы правильно поверили. В настоящее время, если какой-либо элемент отмечен или снят, он показывает то же сообщение :( –

ответ

5

Try кодирование против ItemCheck события:

Происходит, когда проверяется состояние при смене одного элемента.

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) 
{ 
    string itemText = checkedListBox1.Items[e.Index].ToString(); 
    if (e.NewValue == CheckState.Checked) 
    { 
     MessageBox.Show(itemText + " checked"); 
    } 
    else 
    { 
     MessageBox.Show(itemText + " unchecked"); 
    } 
} 

Это лучше, чем SelectedIndexChanged, потому что это один срабатывает всякий раз, когда пользователь выбирает новый пункт, против пункта получения проверить/бесконтрольно.

+2

Спасибо @Hanlet. Вы предоставили правильное решение, которое я искал. Еще раз спасибо –

+0

@gomeshmunda Рад, что он Удачи. –

 Смежные вопросы

  • Нет связанных вопросов^_^