2024年4月27日发(作者:)

C#.NET中动态添加与删除控件

数组为共享公用功能的一组控件一起工作提供了便捷的途径。例如,一组控件可能用于显示

相关的数据,或者在被点击时提供相关的行为。C#本身并不支持控件数组的建立,但是你可以

通过编程复制控件数组的所有功能。本文介绍复制控件数组功能的简单组件的建立。

控件数组的主要用处有:

1,使用相同的名称与索引访问一组控件,允许用编号检索和设置数据项并且在整个数组中重复。

这个功能可以使用下面的代码实现。

伪代码

myControl[myIndex].MyProperty = myValue;

myControl[myIndex + 1].MyMethod

2,多个对象使用同一个事件处理程序(event handler)处理事件,在这些事件中检索和使用

索引,代码如下:

伪代码

private void myControl_Click( sender, rgs e)

{

("You have clicked MyControl number " +

);

}

3,在运行时动态添加或者删除控件,代码如下:

伪代码

for (int i = 1; i < 6; i++)

{

//插入代码来建立控件并给属性赋值

}

C#允许你复制与控件数组相关的一些功能。例如,你能使用委托把多个对象的事件绑定到一个

事件处理程序。但是,如果把这些功能合并到一个动态的、容易管理的组件中更加简便。本文将

建立有下面特性的组件:

· 建立索引和排序控件的集合。将使用按钮集合来演示。

· 一个事件处理程序来处理衍生的按钮的点击事件。

· 使用索引引用控件和成员的代码。

· 给窗体动态添加和删除控件的代码。

建立项目

在本节中将建立并命名一个项目,并给该项目添加一个类。该类将封装实现控件数组的代码。

1、选择File-> New-> Project菜单打开New Project对话框。

2、从Visual C#项目列表中选择Windows Application项目模版,在Name框中输入

ButtonArrayProject。

3、选择File-> Save All保存项目。

实现一个集合

ButtonArray类会处理通过一个集合的实现来保存和组织控件数组的事务。集合是包含索

引对象变量列表的对象,也包含add、remove等方法和其它的操作对象。本节中将建立一个

继承自tionBase(.NET框架组件中提供必要的集合功能的类)的

类,并实现提供必要功能的方法。

建立继承类的过程:

1、从Project菜单中选择Add Class。

2、根据情况把类命名为。类的代码编辑器将打开。

3、在类的声明中,指定它继承自.NET框架组件的tionBase

类。

public class ButtonArray : tionBase

{

// 省略了设计者增加的代码

}

tionBase类为集合提供了很多必要的功能。其中包括一个跟

踪集合中对象的List对象,维护集合中当前对象数量的Count属性,允许删除特定位置索引的

对象的RemoveAt方法。在实现控件数组集合时会使用到它们。

因为每个控件数组与一个窗体关联,索引必须添加一个字段来保存该窗体的引用。通过建立

私有的、只读字段来保存引用,可以保证每个控件数组组件只与以一个窗体关联。

为组件建立私有、只读字段

立即给类声明添加下面的代码:

private readonly HostForm;

在集合中实现的第一个方法是AddNewButton。该方法建立一个新的按钮控件并把它添加

到目标窗体。你也可以使用该方法为新按钮设置初始属性。

实现AddNewButton方法

在ButtonArray类的代码编辑器中输入下面的代码:

public AddNewButton()

{

//为Button类建立新的实例

aButton = new

();

//将该按钮添加到集合的内部列表

(aButton);

//把控件集合中的按钮添加到被HostForm字段引用的窗体

(aButton);