C#  RadioButton和CheckBox控件
如前所述,RadioButton和CheckBox控件与按钮控件有相同的基类,但它们的外观和用法大不相同。
传统上,单选按钮显示为一个标签,左边是一个圆点,该点可以是选中或未选中。在要给用户提供几个互斥选项时,就可以使用单选按钮。例如,访问用户的性别。
把单选按钮组合在一起,给它们创建一个逻辑单元,此时必须使用GroupBox控件或其他容器。首先在窗体上拖放一个组框,再把需要的RadioButton按钮放在组框的边界之内,RadioButton按钮会自动改变自己的状态,以反映组框中惟一被选中的选项。如果不把它们放在组框中,则在任意时刻,窗体上只有一个RadioButton被选中。
传统上,CheckBox显示为一个标签,左边是一个带有标记的小方框。在希望用户可以选择一个或多个选项时,就应使用复选框。例如,访问用户要使用的操作系统(如Windows Visit、Windows XP、Linux等)。
在RadioButton控件派生于ButtonBase,前面已经有一个使用按钮的示例了,所以要描述的
属性只有几个,如表8-13所示。
表8-13  RadioButton控件的属性
属性
说明
Appearance
获取或设置一个值,用于确定控件的外观
AutoCheck
获取或设置一个值,指示在单击控件时,Checked值和控件外观是否自动变更
CheckAlign
获取或设置控件中文本的位置
Checked
获取或设置控件是否已被选中
在处理RadioButton时,通常只使用一个事件,但还可以订阅许多其他事件。本章只介绍两个事件,介绍第二个事件的原因是它们之间有微妙的区别。如表8-14所示。
表8-14  RadioButton控件的常用事件
事件
说明
CheckChanged
RadioButton的选中状态改变时,将触发这个事件。如果窗体或GroupBox有多个RadioButton控件,这个事件会被触发两次。第一次为刚才选中,但现在变成未选中的控件而触发;第二次为现在变成选中的控件而触发
Click
每次单击RadioButton控件时都会触发该事件。这与Change事件是不同的,因为连续单击RadioButton控件两次或多次只改变Checked属性一次,且只改变以前未选中的控件的Checked属性
CheckBox控件继承了ButtonBase类的所有成员,并新增了以下几种属性,如表8-15所示。
表8-15  CheckBox控件的属性
属性
说明
AutoCheck
获取或设置一个值,该值指示当单击某一CheckBox时,CheckedCheckState的值及该CheckBox外观是否发生改变
CheckAlign
获取或设置CheckBox控件上复选框的水平或垂直对齐方式
Checked
获取或设置一个值,该值指示CheckBox是否处于选中状态
CheckState
获取或设置CheckBox的显示状态
TextAlign
获取或设置CheckBox控件的说明文本的对齐方式
ThreeState
获取或设置一个值,该值指示此CheckBox是否允许3中复选状态而不是两种。
一般只使用这个控件的一两个事件。注意,RadioButton和CheckBox控件都有CheckChanged事件,但其结果是不同的,如表8-16所示。
表7-16  CheckButton控件的常用事件
事件
说明
CheckedChanged
CheckedChanged属性改变时将触发该事件。但当复选框的ThreeStatetrue时,单击复选框将不会改变Checked属性。当复选框的状态从Checked变为Indeterminatehtmlradio添加切换事件时,也会触发该事件
CheckedStateChanged
CheckButton控件的Checked属性改变时将触发该事件。CheckedState属性的值可以是CheckedUnchecked。只要Checked属性改变了,就将触发该事件。另外,当状态从Checked变为indeterminate时,也会触发该事件
从上述可以看出即使RadioButton和CheckBox控件都有CheckedChanged事件,但其结果是不同的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。