2009-03-11 3 views
1

Я просто наткнулся на SetItemChecked и SetItemCheckState при работе с проверенным списком.SetItemChecked (index, boolean) VS SetItemCheckState (index, Checkstate)

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

SetItemCheckState принимает список indexex и CheckState-enum, чтобы установить состояние как для проверки, так и для непроверенного или неопределенного.

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

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

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

Спасибо.

ответ

3

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

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

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

1

Я голосую за

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

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

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

1

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

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

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

0

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

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