Visual Basic .NET和C#允许你复制与控件数组相关的一些功能。例如,你能使用委托把多个对象的事件绑定到一个事件处理程序。但是,如果把这些功能合并到一个动态的、容易管理的组件中更加简便。本文将建立有下面特性的组件:
·建立索引和排序控件的集合。将使用按钮集合来演示。
·一个事件处理程序来处理衍生的按钮的点击事件。
·使用索引引用控件和成员的代码。
·给窗体动态添加和删除控件的代码。
预备知识
·了解属性组件和它们的工作方式。
·了解一些组件的多态性
·知道Visual Basic .NET或C# .NET的语法。
建立项目
在本节中将建立并命名一个项目,并给该项目添加一个类。该类将封装实现控件数组的代码。
1、选择File-> New-> Project菜单打开New Project对话框。
2、从Visual Basic或Visual C#项目列表中选择Windows Application项目模版,在Name框中输入ButtonArrayProject。
3、选择File-> Save All保存项目。
实现一个集合
ButtonArray类会处理通过一个集合的实现来保存和组织控件数组的事务。集合是包含索引对象变量列表的对象,也包含add、remove等方法和其它的操作对象。本节中将建立一个继承自System.Collections.CollectionBase(.NET框架组件中提供必要的集合功能的类)的类,并实现提供必要功能的方法。
建立继承类的过程:
1、从Project菜单中选择Add Class。
2、根据情况把类命名为ButtonArray.vb或者ButtonArray.cs。类的代码编辑器将打开。
3、在类的声明中,指定它继承自.NET框架组件的System.Collections.CollectionBase类。
System.Collections.CollectionBase类为集合提供了很多必要的功能。其中包括一个跟踪集合中对象的List对象,维护集合中当前对象数量的Count属性,允许删除特定位置索引的对象的RemoveAt方法。在实现控件数组集合时会使用到它们。
因为每个控件数组与一个窗体关联,索引必须添加一个字段来保存该窗体的引用。通过建立私有的、只读字段来保存引用,可以保证每个控件数组组件只与以一个窗体关联。
为组件建立私有、只读字段
立即给类声明添加下面的代码:
在集合中实现的第一个方法是AddNewButton。该方法建立一个新的按钮控件并把它添加到目标窗体。你也可以使用该方法为新按钮设置初始属性。
实现AddNewButton方法
在ButtonArray类的代码编辑器中输入下面的代码: