在C#中怎样快速的将窗体中的各个控件清空

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:56:19
可否不是一个一个的

这个比较麻烦,因为你不知道到底有多少种类型的控件,最重要的是,每种控件的清空方式都有所不同。

例如TextBox和CheckBox的清空方式就不同。

可以使用委托的方式来进行对象的清空。

首先定义一个委托:
public delegate void CleanControl(Control ctrl);//这个委托方法就是用来清空委托的。

然后,使用一个键值对来存储要进行清除的控件类型和要执行的方法。
Dictionary<Control, CleanControl> cleanMethodList = new Dictionary<Control, CleanControl>();

拿TextBox和CheckBox举例。这两个方法要符合CleanControl委托。
private void CleanTextBox(Control ctrl)
{
(ctrl as TextBox).Text = string.Empty;
}
private void CleanCheckBox(Control ctrl)
{
(ctrl as CheckBox).Checked = false;
}

在这里,还要声明一个用来初始化该方法集的方法:
private void InitMethodList()
{
cleanMethodList.Add(TextBox, CleanTextBox);
cleanMethodList.Add(CleanCheckBox, CleanCheckBox);
//后续的添加,你可以放在配置文件中,也可以写在这里
}

最后,就是清空操作:
void Clean()
{
foreach(Control item in this.C){
cleanMethodList[item].Invoke();
}