十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
正好我也需要这个功能,我是这样做的:
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站设计、通辽网络推广、微信小程序开发、通辽网络营销、通辽企业策划、通辽品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供通辽建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
'判断指定窗体是否打开
Public Function frmopen(frmname As String) As Boolean
Dim frmeach As Form
For Each frmeach In Forms
If frmeach.Name = frmname Then
frmopen = True
Exit Function
End If
Next
frmopen = False
End Function
frmname是我们要判断是否打开的子窗体的名称,遍历所有窗体,如果要判断的窗体名称存在,则返回True,如果没有则返回false,根据返回函数来进行断判。
方法1:调用API函数FindWindow,通过窗体的Caption属性判断 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long Dim lngAns As Long lngAns = FindWindow(vbNullString, "要查找窗体的CAPTION") lngAns = IsWindow(lngAns) If lngAns 0 Then MsgBox "窗体已经被加载!", vbOKOnlyEndElseMsgBox "窗体未被加载!", vbOKOnlyEnd If方法2:访问Forms集合,也是通过Caption判断 '在Forms集合中进行遍历 For Each frmEach In Forms If frmEach Is frmTest Then '这样判断也可以 blnResult = TrueExit ForEnd If方法3:访问Forms集合,通过name判断 Private Function IsLoad(ByVal frmTest As Form) As Boolean Dim frmEach As Form Dim blnResult As Boolean blnResult = False '在Forms集合中进行遍历 For Each frmEach In Forms If frmEach.Name = frmTest.Name Then blnResult = TrueExit ForEnd IfNext
Dim F1 As New Datasystem.Form2 '实例化窗体
For Each na As Form In Application.OpenForms '打开窗体的集合
If na.ProductName = F1.ProductName AndAlso na.Name = F1.Name 0 Then '判断程序集的产品名称和窗体名称是否已存在打开的窗体中
If na.WindowState = FormWindowState.Minimized Then '判断窗体是否最小化
na.WindowState = FormWindowState.Normal '还原窗体
End If
na.Activate() '激活窗体
Return '返回
End If
Next
F1.Show() '如果没有打开的窗体中未找到,重新打开窗体
如果窗体是否处于显示状态,通过Visible属性辨别
如何判别窗体已载入,但未必显示。可以在forms集合中搜索一下是否存在指定窗体。
Function isLoaded(strForm as String) As Boolean
'参数为窗体名
Dim frm As Form
For Each frm In Forms
If frm.Name = strForm Then
isLoaded = True
Exit Function
End If
Next
End Function