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

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

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

例如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()

}

}

补充:

这种方法,可以声明成为一个类库以进行重用,将一般的控件名称和 *** 作方法写入配置文件。调用的时候,当要再次使用时,添加一个对应的配置信息,引入此库即可。

VB可使用Nothing

关键字用于取消某对象变量与实际对象的关联。使用 Set 语句将对象变量赋值为 Nothing。

例如:

Set MyObject = Nothing

多个对象变量可以引用同一个实际对象。当 Nothing 赋值给某对象变量后,此变量就不再引用任何实际对象。当多个对象变量引用同一个对象时,只有在所有对象变量都设置为 Nothing (在设置为Nothing的最后一个对象变量超出范围后,显式或隐式地使用 Set

命令)后,与变量所引用的对象相关联的内存和系统资源才被释放。

实现代码:

Option Explicit

    Dim cn As New ADODB.Connection '定义数据库的连接

    Dim rs As New ADODB.Recordset

    

Private Sub Command1_Click()

    Dim sql As String

    sql = "select * from jishijilu" '

    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" & App.Path & "\wd.mdbPersist Security Info=False"

    cn.Open

    rs.CursorLocation = adUseClient

    rs.Open sql, cn, adOpenDynamic, adLockOptimistic

    Set DataGrid1.DataSource = rs

End Sub

Private Sub DataGrid1_Click()

    Set cn = Nothing '本句和下一行语句不用实现效果相似

    Set rs = Nothing '

    Set DataGrid1.DataSource = Nothing '本句语句就能实现DataGrid控件清空

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9886516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存