Foxtable(狐表)用户栏目专家坐堂 → 在菜单中不能使用检测活动窗口的函数吗?


  共有3053人关注过本帖树形打印复制链接

主题:在菜单中不能使用检测活动窗口的函数吗?

帅哥哟,离线,有人找我吗?
瞩望星空
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4727 威望:0 精华:0 注册:2013/4/20 20:08:00
在菜单中不能使用检测活动窗口的函数吗?  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
菲舍尔
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:504 积分:3492 威望:0 精华:3 注册:2012/11/13 15:49:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
瞩望星空
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4727 威望:0 精华:0 注册:2013/4/20 20:08:00
  发帖心情 Post By:2014/8/3 0:39:00 [只看该作者]

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

 

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/3 9:41:00 [只看该作者]

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

 

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


 回到顶部