SetItemChecked(index,boolean)VS SetItemCheckState(index,Checkstate)

时间:2009-03-11 13:30:26

标签: .net checkedlistbox

在处理选中的列表框时,我偶然发现了SetItemChecked和SetItemCheckState。

SetItemChecked采用listindex和True / false来将listitem设置为选中或取消选中。

SetItemCheckState采用listindex和CheckState-enum将状态设置为checked,unchecked或Indeterminate。

为什么SetItemChecked存在,当SetItemCheckState覆盖所有状态时?

是否只是为了简单地使用布尔值,因为它是检查/取消选中最常见的用途,还是我错过了什么?

如果它只是为了更容易使用布尔值,为什么不将它作为函数的重载?

感谢。

4 个答案:

答案 0 :(得分:3)

没有真正的区别。 SetItemCheck像这样调用SetItemCheckedState:

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

就像你已经假设的那样,我想这只是一个辅助方法,可以让开发人员更简单。

答案 1 :(得分:2)

我投票赞成

  

是否只是为了简单地使用布尔值,因为它是检查/取消选中最常见的用途,还是我错过了什么?

但通常不会使用额外的功能(只添加了Indeterminate案例)

编辑: CheckedListBox.SetItemCheckState(1,CheckState.Checked)读起来很糟糕(但很清楚) CheckedListBox.SetItemChecked(1,true)更易于阅读

答案 2 :(得分:1)

这是因为根据布尔值来检查/取消选中更为常见,并且避免必须这样做:

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

一直以来。此外,它不是重载,因为它反映了CheckBox的Checked和CheckState属性。

答案 3 :(得分:0)

这很清楚,但令人惊讶的是没有人在这里提到它:

使用.SetItemChecked(),您只能选中或取消选中某个项目,同时还可以通过.SetItemCheckState()将项目选中状态设置为“不确定”,这将在使用3D复选框时为项目提供阴影复选框。