Foxtable(狐表)用户栏目专家坐堂 → 如何避免出现重复提示!


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

主题:如何避免出现重复提示!

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17158 威望:0 精华:0 注册:2014/7/29 19:09:00
如何避免出现重复提示!  发帖心情 Post By:2017/7/17 11:30:00 [只看该作者]

BeforeShowErrorMessage中有如下代码:
If e.Message2.indexof("一般性网络错误") > -1 Or e.Message2.indexof("SQL Server 不存在") > -1 Then
    Dim Result As DialogResult
    Result = MessageBox.Show("网络不通,点击是将退出,点击(否)继续等待网络正常后再操作!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        system.diagnostics.process.GetProcessesByName("Newsource")(0).kill
    Else
        e.Cancel=True
        Return
    End If
end if

上述代码的目的是网络不通时提示用户,但网络不通后一直提示出现很多的相同的提示框,如何实现只提示一次,即只要弹出一个,后面的就不要弹出了
还有个问题就是网络不通后即使用户点击是也无法结束进程,还会弹出一些其他的出错框,即结束进程也不能终止其他代码的运行.

谢谢!

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


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

1、提示窗口你可以做一个独立窗口,显示出来。

 

    代码上判断自己的窗口是否打开,如果打开了,就不重复打开、不执行后续的代码。

 

2、其它的出错框具体是什么错误?在事件里面一起捕捉。


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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17158 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/7/17 12:19:00 [只看该作者]

除了自己弄窗口外,能否直接捕捉MessageBox这个对话框吗?比如根据其显示的内容来判断

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


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

你可以根据提示窗口的标题判断

 

http://www.foxtable.com/webhelp/scr/2713.htm

 


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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17158 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/7/28 21:22:00 [只看该作者]

如果单独做了窗口,不重复打开好控制,但怎么控制不执行后面的代码,比如点击了窗口中的某个按钮,里面有很多代码,执行到一半时网络突然断开,此时弹出提示,要如何禁止那一半还没有执行的代码继续执行,不然也会出现一系列的错误
用了return没用

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


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

这个几乎无解。

要做也可以,出错后设置一个全局状态即可,每个地方都判断一下这个状态。但是这样必然导致效率非常低,用个成语说就是因噎废食。还不如给异常定义一下级别,高级别的异常直接就强制退出程序好了

这也是为什么大多数程序对于某些不可抗力的异常都是听之任之。

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17158 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/7/28 22:23:00 [只看该作者]

如果用户输入了很多资料还没有保存时出现网络断开强行关闭就会导致网络好时又要重新再次录入,用户就是想如果网络突然断开时就弹出提示,然后就停在那里,不要弹出错误,他可以等网络好时再继续操作就不用重新录入一遍数据,这样没法实现吗,蓝老师?

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


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

Foxtable目前的异常处理模式确实不好处理。

在连接网络或者数据库前先判断网络状态,在进行操作,如果操作异常,转到BeforeShowErrorMessage,然后设置一下全局变量为失败,下一个代码判断这个全局变量如果为失败就停止执行并退出。重复这个过程即可。

不过有些异常是Foxtable强行抛出的,没有办法捕捉并去掉的。这种情况就就没有办法不弹出错误了。

 回到顶部