以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- MessageBox.Show的异常 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85854) |
-- 作者:czy66ds -- 发布时间:2016/6/3 19:22:00 -- MessageBox.Show的异常 我遇到一个奇怪现象:当代码运行到MessageBox.Show("xxx")时,系统长时间停顿,像死机似的,但按下Alt键就会跳出MessageBox.Show("xxx")对话框。这是什么情况? |
-- 作者:Hyphen -- 发布时间:2016/6/4 8:42:00 -- MessageBox.Show放在什么地方,是不是在线程里,或者类似SystemIdle事件,秀出完整代码看看 |
-- 作者:czy66ds -- 发布时间: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 -- 发布时间:2016/6/4 10:15:00 -- 代码写在什么地方的 |
-- 作者:czy66ds -- 发布时间:2016/6/4 11:31:00 -- 窗口的保存按钮 |
-- 作者:Hyphen -- 发布时间:2016/6/4 11:34:00 -- 那应该是被窗口挡住了,如果是独立窗口或者模式窗口,试试 MessageBox.Show(e.Form.BaseForm,"缺少本部拆件人!")
|
-- 作者:czy66ds -- 发布时间:2016/6/4 11:57:00 -- 对,你判断的很准确,是被窗口挡住了。 在项目中,message代码一处是写在模式窗口里,使用你提供的代码没有达到目的;还有的是写在主窗口中,也不好使。按下Alt键就显现message对话框。 变通的方法就是用代码模拟按下Alt键,那么,模拟按下Alt键代码如何写?
|
-- 作者:czy66ds -- 发布时间:2016/6/4 12:14:00 -- 加上了 Sendkeys.Send("{Alt}") \'模拟按下Alt键也不行。
|
-- 作者:Hyphen -- 发布时间:2016/6/4 14:10:00 -- 有没有设置主窗口或者其它已打开窗口为最顶层的代码,去掉试试 |
-- 作者:lzzhx -- 发布时间:2016/6/4 19:04:00 -- 我在其它地方看的,把MessageBox改成下面的试试 MessageBox.show("缺少本部拆件人 ! ", "重要提示",MessageBoxButtons.Ok,MessageBoxIcon.Error, 0, Windows.forms.MessageBoxOptions.ServiceNotification) |