以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  报告一下小bug.独立窗口挡住系统弹窗  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55499)

--  作者:pc005637
--  发布时间:2014/8/18 11:24:00
--  报告一下小bug.独立窗口挡住系统弹窗
新建一个项目,增加一个窗口,独立窗口,居中显示,最顶层设为true.

应用窗口。

操作:删除某表的一条记录行,系统会弹出一个确认窗口。

1.如果系统的确认窗口给独立窗口挡住了的话,项目死机。
2.如果系统的确认窗口不会给独立窗口挡住了的话,项目不会死机。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:独立窗口挡住系统弹窗.foxdb



--  作者:有点甜
--  发布时间:2014/8/18 11:31:00
--  

 这个不能算是bug。

 

 如果不显示了。

 

1、你可以不把窗口设置成最顶层;

 

2、或者你在删除事件把窗口设置成非最顶层,删除以后再设置回来。

 

3、或者你自己实现删除提示和删除行的功能


--  作者:Bin
--  发布时间:2014/8/18 11:32:00
--  
没办法.

自己设计一个删除行按钮,删除前设置最顶层False 完了再设置回来

--  作者:pc005637
--  发布时间:2014/8/18 11:51:00
--  报告一下小bug.独立窗口挡住系统弹窗
设成取消最顶层可能有点不好,因为可能以后会有很多窗口会遇到这个情况,编程技术不好,很难这个智能地设置取消最顶层。再改回来。

只能先将独立窗口默认设置到左上角,或右上角等边角地方,尽量避免遇到这种情况了。

我的理想设置是,系统的弹窗可以在最顶层。那样就好了。独立窗口设置的最顶层只是相对于其它用户生成的窗口。

--  作者:Bin
--  发布时间:2014/8/18 11:56:00
--  
Forms("X").Topmost=True


Forms("X").Topmost=false

--  作者:pc005637
--  发布时间:2014/8/18 12:01:00
--  报告一下小bug.独立窗口挡住系统弹窗
可以在全局表事件BeforeDeleteDataRow。那里设置代码吗?
--  作者:Bin
--  发布时间:2014/8/18 12:03:00
--  
不行,因为提示比事件执行的还要早.
--  作者:有点甜
--  发布时间:2014/8/18 12:06:00
--  

Public TopFrms As New List(Of Winform.Form)

 

\'----------------------------


TopFrms.Clear
For Each frm As WinForm.Form In Forms
    If frm.Opened AndAlso frm.TopMost Then
        frm.Topmost = False
        TopFrms.Add(frm)
    End If
Next

 

\'-----------

 

For Each frm As WinForm.Form In TopFrms
    frm.Topmost = True
Next

 


--  作者:pc005637
--  发布时间:2014/8/18 12:36:00
--  谢谢。
谢谢。两位版主。
代码应该只能写在删除按键那里了。

--  作者:pc005637
--  发布时间:2014/8/18 12:59:00
--  报告,发现问题。
报告,上面的代码不能设置窗口为非最顶层。

独立窗口还是会挡住系统的弹窗。
[此贴子已经被作者于2014-8-18 13:00:00编辑过]