四时宝库

程序员的知识宝库

自制数值文本框组件1-C#学习进阶(怎么做文本框控件)

实例说明

在用户制作财务报表时,有些文本框只能填写数值型数据,为了便于用户的正确填写,本实例制作了一个只限于输入数值型的文本框,并可以在输入数值时,限定输入的范围,以及对其进行四舍五入、取整等。实例运行结果如图1所示。

技术要点

设置自定义属性时,如果要将创建的属性放置在一个分类中并对其进行说明,可以用BrowsableAttribute类中的Browsable方法来控制当前添加的属性是否显示在“属性”对话框中,用CategoryAttribute类中的Category属性设置分类的别名,用DescriptionAttribute类中的Description属性设置当前属性的说明性文字。下面对自定义属性的设置进行详细说明。

首先在控件的“代码编辑”窗口中找到如下代码:

public partial class NumberBox : TextBox
{
    public NumberBox()
    {
        InitializeComponent();
    }
}

在public NumberBox代码段的下面添加自定义属性,代码如下:

private int TDecimalDigit = 2;
//在“属性”窗口中显示DecimalDigit属性
[Browsable(true), Category("数据文本框"), Description("保留的小数位数")] 
public int DecimalDigit
{
    get { return TDecimalDigit; }
    set
    {
        TDecimalDigit = value;
            //当属性值改变时,在这里进行相应的操作
    }
}

在设置控件的属性时,属性的设置分为两种:

一种是C#自带类型的属性,如string、int、bool、Color、Font、DateSet等类型,它们的创建方式与DecimalDigit属性的创建方式相同,只要将该属性的int类型改为所需的类型即可;另一种是具有下拉列表框的属性,该列表框中的值是开发者自定义的。

下面对具有下拉列表属性的创建进行说明。

首先在public ChartPanel代码的下面定义一个枚举型变量,用于设置下拉列表的值。代码如下:

public enum Reserved
{
    MinInt = 0,                                                                    //保留最小整数
    Round = 1,                                                                    //四舍五入
    MaxInt = 2,                                                                          //保留最大整数
    Tropism = 3,                                                                 //小数取位(不进行舍入)
}

然后在该枚举型的下面设置一个具有Reserved值的下拉列表属性。代码如下:

private Reserved TReservedStyle = Reserved.Round;
//在“属性”窗口中显示ReservedStyle属性
[Browsable(true), Category("数据文本框"), Description("小数保留的类型")] 
public Reserved ReservedStyle
{
    get { return TReservedStyle; }
    set
    {
        TReservedStyle = value;
        ~~//当属性值改变时,在这里进行相应的操作
    }
}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接