以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]2个模式窗口相互切换不正常的现象?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175034)

--  作者:新福星
--  发布时间:2022/2/17 10:30:00
--  [讨论]2个模式窗口相互切换不正常的现象?
A&B 2个模式类型的窗口,在各自窗口中的标签加入如下双击事件:
  B窗口如下代码
        e.Form.Close     
        Forms("A").open

  A窗口如下代码
        e.Form.Close     
        Forms("B").open
第一轮切换是正常的。
在模式窗口下如下表现:
比如先打开A窗口,双击A窗口标签可以打开B窗口,然后再双击B窗口标签,就无法打开A窗口了。
同理打开B窗口,双击B窗口标签可以打开A窗口,然后再双击A窗口标签,就无法打开B窗口了。
窗口AfterLoad事件里有  e.Form.BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None


但是在独立窗口可以无限的来回切换。

   
    

--  作者:程兴刚
--  发布时间:2022/2/17 10:43:00
--  
将e.form换成forms(“xx”)试试
--  作者:有点蓝
--  发布时间:2022/2/17 10:51:00
--  
模式窗口是阻塞式的,不能这样用。先打开的模式窗口不能关闭,只能隐藏。无法来回切换的

比如先打开A窗口,然后打开B窗口,B窗口要重新打开A窗口,需要把B窗口关闭,然后显示A窗口。

A窗口打开B窗口的按钮
e.Form.baseform.hide 
Forms("B").Show

B窗口的打开A窗口的按钮
Forms("A").Show
e.Form.close

--  作者:新福星
--  发布时间:2022/2/17 11:11:00
--  
谢谢!但是没有看明白!希望是可以无限循环切换。
是不是AB窗口切换程序应该是对称的吧?
实际语句是下面这样的
  Forms("登录窗口").Close
    If  Forms("身份证登陆").opened Then
        Forms("身份证登陆").show       
    Else     
        Forms("身份证登陆").open
    End If




--  作者:有点蓝
--  发布时间:2022/2/17 11:21:00
--  
模式窗口是阻塞式的,无法来回切换的。阻塞式意思就是在这个窗口里的所有操作没有完成前,窗口是无法关闭的。A模式窗口双击打开B模式窗口,在B模式窗口关闭之前,A模式窗口双击事件就不算结束,因为消息循环被B模式窗口阻塞,只有B窗口关闭了,A窗口的双击事件执行才算真正结束

希望是可以无限循环切换还是使用独立窗口吧