Foxtable(狐表)用户栏目专家坐堂 → 报告一下小bug.独立窗口挡住系统弹窗


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

主题:报告一下小bug.独立窗口挡住系统弹窗

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


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
报告一下小bug.独立窗口挡住系统弹窗  发帖心情 Post By:2014/8/18 11:24:00 [只看该作者]

新建一个项目,增加一个窗口,独立窗口,居中显示,最顶层设为true.

应用窗口。

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

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

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



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


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

 这个不能算是bug。

 

 如果不显示了。

 

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

 

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

 

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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/18 11:32:00 [只看该作者]

没办法.

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

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


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
报告一下小bug.独立窗口挡住系统弹窗  发帖心情 Post By:2014/8/18 11:51:00 [只看该作者]

设成取消最顶层可能有点不好,因为可能以后会有很多窗口会遇到这个情况,编程技术不好,很难这个智能地设置取消最顶层。再改回来。

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

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

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/18 11:56:00 [只看该作者]

Forms("X").Topmost=True


Forms("X").Topmost=false

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


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
报告一下小bug.独立窗口挡住系统弹窗  发帖心情 Post By:2014/8/18 12:01:00 [只看该作者]

可以在全局表事件BeforeDeleteDataRow。那里设置代码吗?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/18 12:03:00 [只看该作者]

不行,因为提示比事件执行的还要早.

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
谢谢。  发帖心情 Post By:2014/8/18 12:36:00 [只看该作者]

谢谢。两位版主。
代码应该只能写在删除按键那里了。

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


加好友 发短信
等级:五尾狐 帖子:1038 积分:12915 威望:0 精华:0 注册:2011/5/29 15:19:00
报告,发现问题。  发帖心情 Post By:2014/8/18 12:59:00 [只看该作者]

报告,上面的代码不能设置窗口为非最顶层。

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

 回到顶部
总数 18 1 2 下一页