SetItemChecked (index, boolean) VS SetItemCheckState (index, Checkstate) - PullRequest
2 голосов
/ 11 марта 2009

Я только что наткнулся на SetItemChecked и SetItemCheckState при работе с проверенным списком.

SetItemChecked принимает listindex и True / false, чтобы установить элемент списка в отмеченный или непроверенный.

SetItemCheckState использует listindex и CheckState-enum для установки состояния в состояние флажка, снятия отметки или неопределенности.

Почему существует SetItemChecked, когда SetItemCheckState покрывает все состояния?

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

И если это просто для облегчения использования логического значения, почему бы не использовать его как перегрузку для функции?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 11 марта 2009

Реальной разницы нет. SetItemCheck вызывает SetItemCheckedState примерно так:

public void SetItemChecked(int index, bool value)
{
    this.SetItemCheckState(index, value ? CheckState.Checked : CheckState.Unchecked);
}

Как вы уже предполагали, я полагаю, что это всего лишь вспомогательный метод, упрощающий работу разработчика.

2 голосов
/ 11 марта 2009

я голосую за

Это просто для облегчения использования логического значения, потому что это наиболее распространенное использование для проверки / снятия отметки, или я что-то пропустил?

Но дополнительная функция обычно не будет использоваться (добавлен только регистр неопределенности)

EDIT: CheckedListBox.SetItemCheckState (1, CheckState.Checked) ужасно читать (но ясно) CheckedListBox.SetItemChecked (1, true) легче читать

1 голос
/ 11 марта 2009

Это связано с тем, что гораздо чаще нужно ставить / снимать флажок в зависимости от логического значения и избегать необходимости делать это:

listbox.SetItemCheckState(i, value ? CheckState.Checked : CheckState.UnChecked)

все время. Кроме того, это не перегрузка, поскольку она отражает свойства Checked и CheckState CheckBox.

0 голосов
/ 07 апреля 2015

Это очень ясно, но на удивление никто не упомянул это здесь:

С помощью .SetItemChecked() вы можете только отмечать или снимать отметку с элемента, в то время как вы также можете установить состояние проверенного элемента на «Неопределенный» на .SetItemCheckState(), что обеспечит затененный флажок для элемента при использовании флажков 3D.

...