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时,Checked或CheckState的值及该CheckBox外观是否发生改变 |
CheckAlign | 获取或设置CheckBox控件上复选框的水平或垂直对齐方式 |
Checked | 获取或设置一个值,该值指示CheckBox是否处于选中状态 |
CheckState | 获取或设置CheckBox的显示状态 |
TextAlign | 获取或设置CheckBox控件的说明文本的对齐方式 |
ThreeState | 获取或设置一个值,该值指示此CheckBox是否允许3中复选状态而不是两种。 |
一般只使用这个控件的一两个事件。注意,RadioButton和CheckBox控件都有CheckChanged事件,但其结果是不同的,如表8-16所示。
表7-16 CheckButton控件的常用事件
事件 | 说明 |
CheckedChanged | 当CheckedChanged属性改变时将触发该事件。但当复选框的ThreeState为true时,单击复选框将不会改变Checked属性。当复选框的状态从Checked变为Indeterminatehtmlradio添加切换事件时,也会触发该事件 |
CheckedStateChanged | 当CheckButton控件的Checked属性改变时将触发该事件。CheckedState属性的值可以是Checked和Unchecked。只要Checked属性改变了,就将触发该事件。另外,当状态从Checked变为indeterminate时,也会触发该事件 |
从上述可以看出即使RadioButton和CheckBox控件都有CheckedChanged事件,但其结果是不同的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论