CheckBox为什么要有Checked和CheckState这两个属性?

iweruew 2014-05-27 09:05:54
他们之间看起来是有功能重叠的!
...全文
1602 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2014-05-27
  • 打赏
  • 举报
回复
引用 6 楼 iweruew 的回复:
[quote=引用 3 楼 caozhy 的回复:] 大多数情况下,CheckBox是双态的,选中/没有选中。 但是有时候我们需要三态的CheckBox,就需要CheckState。 功能有重叠是出于方面开发者的考虑。你家电视机既然机身上有按钮可以控制,为什么还要配一个遥控器?
如果Indeterminate是让空间变灰,那么设置Enable=false不就行了吗,为什么还要弄一个第三状态呢? [/quote] Enabled是是控件不能用。它不能响应用户的单击操作。 Indeterminate往往用于表示“部分选择”。比如说安装程序,你这个大组件下一个小组件都没有选,是Unchecked,全选了是Checked,有的选了,有的没选,就是Indeterminate。 这两个根本不是一个概念。
exception92 2014-05-27
  • 打赏
  • 举报
回复
引用 5 楼 iweruew 的回复:
[quote=引用 1 楼 bwangel 的回复:] 因为CheckBox是有三个状态。还有一个状态是不确定选中或不选中的中间状态。 如果仅仅用bool值无法表示三态,所以多了个属性用来应会这种情况。
问题是,用户如何让CheckBox处于第三个状态呢? 我感觉选中就是Checked,再点一次就是Unchecked。如何才能从用户的角度把它变成Indeterminate?[/quote] 它有一个 ThreeState 属性,设置成true。
iweruew 2014-05-27
  • 打赏
  • 举报
回复
引用 3 楼 caozhy 的回复:
大多数情况下,CheckBox是双态的,选中/没有选中。 但是有时候我们需要三态的CheckBox,就需要CheckState。 功能有重叠是出于方面开发者的考虑。你家电视机既然机身上有按钮可以控制,为什么还要配一个遥控器?
如果Indeterminate是让空间变灰,那么设置Enable=false不就行了吗,为什么还要弄一个第三状态呢?
iweruew 2014-05-27
  • 打赏
  • 举报
回复
引用 1 楼 bwangel 的回复:
因为CheckBox是有三个状态。还有一个状态是不确定选中或不选中的中间状态。 如果仅仅用bool值无法表示三态,所以多了个属性用来应会这种情况。
问题是,用户如何让CheckBox处于第三个状态呢? 我感觉选中就是Checked,再点一次就是Unchecked。如何才能从用户的角度把它变成Indeterminate?
threenewbee 2014-05-27
  • 打赏
  • 举报
回复
如果没有Checked,那么写起来就比较复杂了,比如: checkBox1.Checked = App.CanDoSomething; 如果没有Checked,就要这么写: checkBox1.CheckState = App.CanDoSomething ? CheckState.Checked : CheckState.Unchecked;
threenewbee 2014-05-27
  • 打赏
  • 举报
回复
大多数情况下,CheckBox是双态的,选中/没有选中。 但是有时候我们需要三态的CheckBox,就需要CheckState。 功能有重叠是出于方面开发者的考虑。你家电视机既然机身上有按钮可以控制,为什么还要配一个遥控器?
  • 打赏
  • 举报
回复
Checked是bool型,只有true/false 而CheckBox还有个Indeterminate状态
bwangel 2014-05-27
  • 打赏
  • 举报
回复
因为CheckBox是有三个状态。还有一个状态是不确定选中或不选中的中间状态。 如果仅仅用bool值无法表示三态,所以多了个属性用来应会这种情况。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧