例如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 ExplicitDim 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)