Foxtable(狐表)用户栏目专家坐堂 → MessageBox.Show的异常


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

主题:MessageBox.Show的异常

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
MessageBox.Show的异常  发帖心情 Post By:2016/6/3 19:22:00 [只看该作者]

我遇到一个奇怪现象:当代码运行到MessageBox.Show("xxx")时,系统长时间停顿,像死机似的,但按下Alt键就会跳出MessageBox.Show("xxx")对话框。这是什么情况?

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/4 8:42:00 [只看该作者]

MessageBox.Show放在什么地方,是不是在线程里,或者类似SystemIdle事件,秀出完整代码看看

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2016/6/4 9:00:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As Date  '日期时间变量
cmd.C
cmd.CommandText = "Select GetDate()" '得到系统日期,含时间;来自SQL Server函数
dt = cmd.ExecuteScalar() '返回单个值


'循环一检验是否输入本部拆件人
Dim r As Row
For Each r In Tables("本部退货查看_Table1").Rows
    If r("验收") = True Then
        If r("本部拆件人") = ""  Then
            MessageBox.Show("缺少本部拆件人!")
            Return
        End If
    End If
Next


'Tables("本部退货查看_Table1").AllowEdit = True
For Each r In Tables("本部退货查看_Table1").Rows
    If r("验收") = True Then
        r("本部验收日期") = dt.Date
        r("本部已验收") = True
        R.Save
       
    End If
Next


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/4 10:15:00 [只看该作者]

代码写在什么地方的

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2016/6/4 11:31:00 [只看该作者]

窗口的保存按钮

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/4 11:34:00 [只看该作者]

那应该是被窗口挡住了,如果是独立窗口或者模式窗口,试试

MessageBox.Show(e.Form.BaseForm,"缺少本部拆件人!")

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2016/6/4 11:57:00 [只看该作者]

对,你判断的很准确,是被窗口挡住了。
在项目中,message代码一处是写在模式窗口里,使用你提供的代码没有达到目的;还有的是写在主窗口中,也不好使。按下Alt键就显现message对话框。
变通的方法就是用代码模拟按下Alt键,那么,模拟按下Alt键代码如何写?

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


加好友 发短信
等级:七尾狐 帖子:1684 积分:16374 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2016/6/4 12:14:00 [只看该作者]

加上了
Sendkeys.Send("{Alt}") '模拟按下Alt键
也不行。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/4 14:10:00 [只看该作者]

有没有设置主窗口或者其它已打开窗口为最顶层的代码,去掉试试

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2016/6/4 19:04:00 [只看该作者]

我在其它地方看的,把MessageBox改成下面的试试

MessageBox.show("缺少本部拆件人 ! ", "重要提示",MessageBoxButtons.Ok,MessageBoxIcon.Error, 0, Windows.forms.MessageBoxOptions.ServiceNotification)


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