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


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

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

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
关于判断窗口是否已经打开  发帖心情 Post By:2017/12/3 11:32:00 [显示全部帖子]

在打开某一个窗体时怎样判断其他窗体是否已经打开?

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/3 13:06:00 [显示全部帖子]

因为其他窗体不知道具体是哪个窗体可能是A窗体、可能是B窗体、可能是C窗体、可能是T窗体、也有可能同时打开了好几个窗体,我想实现在打开某一个窗体前怎么判断除本窗体以外其他窗体是否有打开?
[此贴子已经被作者于2017/12/3 22:01:14编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/4 7:18:00 [显示全部帖子]

我想实现在打开某一个窗体前怎么判断除这个窗体以外其他窗体是否有打开?如果是就执行一段代码如果其他窗体没有打开就执行另一段代码

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/4 9:48:00 [显示全部帖子]

怎么设置模式窗体关闭窗体后执行一个命令呢?

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/4 10:15:00 [显示全部帖子]

甜老师独立窗体可以模式窗体关闭后不执行关闭后的代码

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 8:35:00 [显示全部帖子]

我的程序主窗体类型是主窗口,窗体中有一个计时器,其他窗体是模式或独立窗口。我想实现当有其他窗体打开时(除导航窗体和菜单窗体以外)。主窗体中的计时器关闭,否则打开计时器。该怎么实现呢?

 

 

还有就是模式窗体关闭窗体后无法传值给主窗体

[此贴子已经被作者于2017/12/5 8:36:19编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 8:47:00 [显示全部帖子]

代码是不是写到每个模式窗体的AfterLoad事件呢?

 

我写到计时器TimerTick事件中写了如下代码,当其他窗体打开或关闭不执行代码

 

 

 Dim lbl As WinForm.Label =Forms("主窗体").Controls("Label1")
Dim mf1 As WinForm.Form = forms("停靠窗体")
Dim mf2 As WinForm.Form = forms("菜单窗体")
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 <> mf.name AndAlso f.name <>  mf1.name AndAlso f.name <>  mf2.name Then
        flag = True
        Exit For
    End If
Next
If flag = False Then
    If sfxsdh=False Then
    lbl.Visible=False
    Forms("主窗体").TimerEnabled=False
    Return
Else
    lbl.Visible=True
    Forms("主窗体").TimerEnabled= True
    If lbl.left+lbl.width > 0 Then
        lbl.left -= 10
    Else
        lbl.left = Forms("主窗体").width
    End If
End If
End If

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

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 12:32: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 <> mf.name Then
        flag = True
        Exit For
    End If
Next

If flag = False Then
   Dim lbl As WinForm.Label =Forms("主窗体").Controls("Label1")
If sfxsdh=False Then
    lbl.Visible=False
    Forms("主窗体").TimerEnabled=False
    Return
Else
    lbl.Visible=True
    Forms("主窗体").TimerEnabled= True
    If lbl.left+lbl.width > 0 Then
        lbl.left -= 10
    Else
        lbl.left = Forms("主窗体").width
    End If
End If
End If

 

甜老师按您的方法写到计时器事件中运行后出现一下错误:

(1)打开窗体后计时器不执行


图片点击可在新窗口打开查看此主题相关图片如下:99999.jpg
图片点击可在新窗口打开查看

 

(2)如如打开了窗口类型为主窗口的窗体再打开模式窗体出错如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:45555.jpg
图片点击可在新窗口打开查看


 


图片点击可在新窗口打开查看此主题相关图片如下:588888.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 15:38:00 [显示全部帖子]

同样的错误

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/12/5 15:52:00 [显示全部帖子]

计时器根本不运行
[此贴子已经被作者于2017/12/5 15:52:15编辑过]

 回到顶部
总数 21 1 2 3 下一页