以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在菜单中不能使用检测活动窗口的函数吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54715)

--  作者:瞩望星空
--  发布时间:2014/8/2 23:30:00
--  在菜单中不能使用检测活动窗口的函数吗?

想在菜单中使用检测活动窗口的内部函数,但没有效果,请问是什么原因?

函数代码:

Dim frm As WinForm.Form = Forms.ActiveForm
If frm IsNot Nothing Then
    If frm.Name ="窗口2"  Or  frm.Name ="窗口3" Then
        MessageBox.Show("已打开:" & frm.Name & "窗口,请先关闭","提醒")
        Return  Nothing
    Else
         MessageBox.Show("没有打开必须关闭的窗口,可以继续","提醒")
    End If
End If

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:检测窗口自定义函数.table


--  作者:菲舍尔
--  发布时间:2014/8/3 0:16:00
--  

当你激活菜单的时候,激活窗口永远是主窗口,你当然找不到你需要的结果了,想其他办法吧

 

要判断窗口是否打开,直接用form.opened来判断

 If forms("窗口2").opened  Or  forms("窗口3").opened Then
        MessageBox.Show("已打开:" & frm.Name & "窗口,请先关闭","提醒")
        Return  Nothing
 Else
        MessageBox.Show("没有打开必须关闭的窗口,可以继续","提醒")
 End If

 

 

[此贴子已经被作者于2014-8-3 0:19:13编辑过]

--  作者:瞩望星空
--  发布时间:2014/8/3 0:39:00
--  

嗯,应该可以了。在实际项目中,所检测的窗口都是“主窗口”,应该可以检测的。

 

这样就可以用函数去代替一段代码,大大提高效率,减少代码长度。

[此贴子已经被作者于2014-8-3 0:41:23编辑过]

--  作者:有点甜
--  发布时间:2014/8/3 9:41:00
--  

回复3楼,不能,当你点击菜单的时候,焦点就在主窗口,而不在活动窗口上了。

 

或者你可以变通处理一下,做一个任务计划,把 Forms.ActiveForm isnot Nothing 的值保存到一个变量,取这个值即可