美化单选按钮控件
实例说明
用户使用C#自带的控件制作应用程序时,为了使界面更加美观,更具有特色,可以对控件的样式进行重绘,本实例将对单选按钮控件进行重绘,以用户自定义样式进行显示。实例运行效果如图1所示。
图1 美化单选按钮控件
关键技术
本实例在美化单选按钮控件时,主要是通过重绘单选框实现的,具体实现时,首先需要创建用户控件,然后在用户控件中使用Graphics类的DrawEllipse方法和FillEllipse方法实现重绘单选框操作。下面对本实例中用到的关键技术进行详细讲解。
(1)创建用户控件并使用 创建用户控件的步骤如下:
①选中当前项目,单击右键,在弹出的快捷菜单中选择”添加”/“新建项”命令,弹出如图2所示的”添加新项”对话框。
图2 “添加新项”对话框
②在图2所示对话框中找到”用户控件”并选中,在”名称”文本框中输入用户控件的名称,单击”添加”按钮,即可在当前项目中添加一个用户控件,如图3所示。
图3 添加的用户控件
③在用户控件中,如果需要添加Windows标准控件,可以从”工具箱”中直接拖放使用;如果需要编写代码,则单击”单击此处切换到代码视图”超级链接,进入后台代码视图,以便编写所需的代码。
④用户控件制作完成后,选中制作完成的用户控件,用鼠标将其拖拽到工具箱中,如图4所示。
图4 将用户控件拖拽到工具箱中
⑤最后就可以像使用Windows标准控件一样,对用户控件进行拖拽使用了。
(2)DrawEllipse方法
DrawEllipse方法用来绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆,该方法有4种重载形式,本实例中用到的它的重载形式如下:
public void DrawEllipse(Pen pen,Rectangle rect)
参数说明 R pen:Pen对象,它确定曲线的颜色、宽度和样式。
rect:Rectangle结构,它定义椭圆的边界。
(3)FillEllipse方法 FillEllipse方法用来填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定,该方法有4种重载形式,本实例中用到的它的重载形式如下:
public void FillEllipse(Brush brush,Rectangle rect)
参数说明 R brush:确定填充特性的Brush。
rect:Rectangle结构,它表示定义椭圆的边框。
设计过程
(1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,命名为BeautifulRadioButton。
(2)在当前项目中添加一个用户控件,将其命名为GlorifyRadioButton。将用户控件继承的UserControl类改为RadioButton类。
(3)程序主要代码如下: 在GlorifyRadioButton控件中定义变量,代码如下:
1 | private bool FontAspect = false; //判断字体的方向 |
在GlorifyRadioButton控件的OnPaint事件中对控件的样式进行重绘,主要是通过SystemInformation类的SmallIconSize属性来获取单选按钮左边单选框的大小及位置,然后对单选框进行重绘。实现代码如下:
1 | /// <summary> |
1 | 自定义方法DrawBox主要通过LinearGradientBrush类来设置单选框的绘制颜色,然后用Graphics类进行绘制。实现代码如下: |
自定义方法DrawText主要是通过判断单选按钮控件的显示方向,并在控件的指定位置绘制文本信息。实现代码如下:
1 | /// <summary> |
自定义方法getAspect主要用于获取单选按钮控件的显示方向,实现代码如下:
1 | /// <summary> |
秘笈心法
心法领悟002:RadioButton控件的使用。
RadioButton控件,又称为单选按钮控件,它为用户提供由两个或多个互斥选项组成的选项集,当用户选中某单选按钮时,同一组中的其他单选按钮不能同时选定。例如,在开发考试管理系统时,如果考试题中有单项选择题,则可以使用RadioButton控件来表示单项选择题的各个选项。