Foxtable(狐表)用户栏目专家坐堂 → 关于判断窗口是否已经打开


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

主题:关于判断窗口是否已经打开

帅哥哟,离线,有人找我吗?
有点蓝
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/5 16:49:00 [只看该作者]

先启用计时器
图片点击可在新窗口打开查看

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


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

以下是引用裴保民在2017/12/5 15:52:00的发言:
计时器根本不运行
[此贴子已经被作者于2017/12/5 15:52:15编辑过]

 

当有多个窗口打开的时候,计时器就是不运行的。只打开主窗口的时候,才会运行计时器。

 

具体问题,请上传实例说明。


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 17:35:00 [只看该作者]

最少也有三个窗体同时打开的(如主窗体、导航窗体、菜单窗体)等,那该怎么解决呢?
独立窗体能实现但不想再运行程序时独立窗体在打开时可以操作其他窗体,想实现当客户打开窗体时不能操作其他窗体,所以将窗体改为模式窗体后就不能实现此功能了,请问模式窗体关闭窗体后怎样将值传给主窗体呀?能实现这个功能就能可以实现计时器功能,就卡到这了。或者能实现当独立窗体打开后不能操作本窗体以外的窗体和其他任何操作也可以。该怎么解决呢?
[此贴子已经被作者于2017/12/5 17:46:07编辑过]

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


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

以下是引用裴保民在2017/12/5 17:35:00的发言:
最少也有三个窗体同时打开的(如主窗体、导航窗体、菜单窗体)等,那该怎么解决呢?

 

Dim mf As WinForm.Form = e.form
Dim flag As Boolean = False
For Each f As WinForm.Form In forms
    If f.Opened AndAlso f.name <> "主窗口" AndAlso f.name <> "导航窗口" AndAlso f.name <> "菜单窗口"  Then
        flag = True
        Exit For
    End If
Next

If flag = False Then
    Dim lbl As WinForm.Label =mf.Controls("Label1")  
    If lbl.left+lbl.width > 0 Then
        lbl.left -= 10
    Else
        lbl.left = mf.width
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 17:48:00 [只看该作者]

独立窗体能实现但不想再运行程序时独立窗体在打开时可以操作其他窗体,想实现当客户打开窗体时不能操作其他窗体,所以将窗体改为模式窗体后就不能实现此功能了,请问模式窗体关闭窗体后怎样将值传给主窗体呀?能实现这个功能就能可以实现计时器功能,就卡到这了。或者能实现当独立窗体打开后不能操作本窗体以外的窗体和其他任何操作也可以。该怎么解决呢?

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 17:51:00 [只看该作者]

我以前就这样写的代码。可是写到计算器事件中运行程序后计时器不运行
必须写到每个窗体的关闭后事件中才可以,不过独立窗体可以实现这个功能,写到模式窗体的关闭后的事件中不传值所以实现不了这个功能。真的不知道怎么解决。
[此贴子已经被作者于2017/12/5 17:54:35编辑过]

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


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

以下是引用裴保民在2017/12/5 17:48:00的发言:
独立窗体能实现但不想再运行程序时独立窗体在打开时可以操作其他窗体,想实现当客户打开窗体时不能操作其他窗体,所以将窗体改为模式窗体后就不能实现此功能了,请问模式窗体关闭窗体后怎样将值传给主窗体呀?能实现这个功能就能可以实现计时器功能,就卡到这了。或者能实现当独立窗体打开后不能操作本窗体以外的窗体和其他任何操作也可以。该怎么解决呢?

 

如果用独立窗口

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=105566&skin=0

 

如果用模式窗口,你可以用全局变量啊 http://www.foxtable.com/webhelp/scr/0325.htm

 


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


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

以下是引用裴保民在2017/12/5 17:51:00的发言:
我以前就这样写的代码。可是写到计算器事件中运行程序后计时器不运行
必须写到每个窗体的关闭后事件中才可以,不过独立窗体可以实现这个功能,写到模式窗体的关闭后的事件中不传值所以实现不了这个功能。真的不知道怎么解决。
[此贴子已经被作者于2017/12/5 17:54:35编辑过]

 

根本没看懂你要做什么。能做个具体例子说明吗?


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 20:45:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:主窗体测试.rar


我怎么实现(除主窗体、导航窗体、菜单窗体)以外的其他窗体有打开时主窗体的计时器关闭(也就是主窗体的Label1控件不可见),如果只有(主窗体、导航窗体、菜单窗体)打开,其他窗体是关闭着时主窗体的计时器打开(也就是主窗体的Label1控件可见)并由右向左移动


如果关闭其他窗体后经过判断是否还有其他(除主窗体、导航窗体、菜单窗体)以外的窗体打开,如果有主窗体的计时器继续关闭,如果(除主窗体、导航窗体、菜单窗体)以外的窗体都是关闭状态则打开主窗体计时器功能,并显示主窗体的Label1控件可见并由右向左移动


[此贴子已经被作者于2017/12/5 20:50:14编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/5 21:24:00 [只看该作者]

新建一个计划任务,事件代码

Dim flag As Boolean = False
For Each f As WinForm.Form In forms
    If f.Opened AndAlso f.name <> "主窗体" AndAlso f.name <> "停靠窗体" AndAlso f.name <> "菜单窗体"  Then
        flag = True
        Exit For
    End If
Next
If flag = False AndAlso Forms("主窗体").Opened Then
    Forms("主窗体").TimerEnabled = True
End If

 回到顶部
总数 41 上一页 1 2 3 4 5 下一页