'[ID] OpenOnce '[中文名称] 判断窗体只打开一次 '[功能概要] 判断子窗体是否实例化打开过 '[参数] 1:pfrmChild i:子窗体 ' 2:pfrmParent i:拥有该子窗体的父窗体 '[返回值] 1:true 是第一次实例化打开 ' 2:false 已经实例化打开过 '[记事] 无 '------------------------------------------------------------------------------- Public Function OpenOnce(ByRef pfrmChild As Form, ByVal pfrmParent As Form) As Boolean Dim frmChild As Form ''' 遍历子窗体 For Each frmChild In pfrmParent.OwnedForms If pfrmChild.Tag = frmChild.Tag Then pfrmChild = frmChild frmChild.Activate() '击活子窗体 Return False Exit Function End If Next Return True End Function
ht.add("form1",frm);
下次打开时,先判断frm存在否
frm=ht("form1");
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
'[中文名称] 判断窗体只打开一次
'[功能概要] 判断子窗体是否实例化打开过
'[参数] 1:pfrmChild i:子窗体
' 2:pfrmParent i:拥有该子窗体的父窗体
'[返回值] 1:true 是第一次实例化打开
' 2:false 已经实例化打开过
'[记事] 无
'-------------------------------------------------------------------------------
Public Function OpenOnce(ByRef pfrmChild As Form, ByVal pfrmParent As Form) As Boolean
Dim frmChild As Form ''' 遍历子窗体
For Each frmChild In pfrmParent.OwnedForms
If pfrmChild.Tag = frmChild.Tag Then
pfrmChild = frmChild
frmChild.Activate() '击活子窗体
Return False
Exit Function
End If
Next
Return True
End Function
Form1 frm =new Form1();
if(OpenOnce(frm,this)==true)
{
frm.Owner=this;//设置当前窗体拥有Form1实例
frm.show();
}
呵呵。在NET里要么采用yuqi508(毛路) ( ) 信誉:100 Blog 的循环方法,要么就要获得最开始创建时的窗体对象,再进行操作。不过,循环的方法还是比较方便的。
应用例子
Form1 frm =new Form1();
if(OpenOnce(frm,this)!=true)
{
frm.close();//关闭
}