CheckBox CheckedChanged Windows Form по сравнению с CheckStateChanged

Windows Form CheckBox управляйте реализует обоих CheckedChanged и CheckStateChanged события. Насколько я могу сказать, оба огня, когда проверенное состояние флажка изменяется.

CheckedChanged предшествует CheckStateChanged, но кроме этого я не вижу различия. Я пропускаю что-то? Нужно быть предпочтен по другому?

54
задан Peter Mortensen 18 April 2012 в 21:06
поделиться

2 ответа

Думаю, это связано с флажками с тремя состояниями. Это кишки установщика CheckState:

 if (this.checkState != value)
 {
   bool flag = this.Checked;
   this.checkState = value;
   if (base.IsHandleCreated)
   {
     base.SendMessage(0xf1, (int) this.checkState, 0);
   }
   if (flag != this.Checked)
   {
     this.OnCheckedChanged(EventArgs.Empty);
   }
   this.OnCheckStateChanged(EventArgs.Empty);
 }
20
ответ дан 7 November 2019 в 08:03
поделиться

CheckState (и, следовательно, CheckStateChanged) позволяют использовать флажок, который может иметь три значения: он может быть отмечен, не отмечен или «неопределенный», то есть для него ThreeState установлено значение true.

Если вы не используете ThreeState, тогда вам понадобится CheckedChanged.

62
ответ дан 7 November 2019 в 08:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: