在处理选中的列表框时,我偶然发现了SetItemChecked和SetItemCheckState。
SetItemChecked采用listindex和True / false来将listitem设置为选中或取消选中。
SetItemCheckState采用listindex和CheckState-enum将状态设置为checked,unchecked或Indeterminate。
为什么SetItemChecked存在,当SetItemCheckState覆盖所有状态时?
是否只是为了简单地使用布尔值,因为它是检查/取消选中最常见的用途,还是我错过了什么?
如果它只是为了更容易使用布尔值,为什么不将它作为函数的重载?
感谢。
答案 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复选框时为项目提供阴影复选框。