如何先关闭messagebox在跳转窗口~~~~~~~~~~~~~~~·

xujun5031 2016-08-01 03:00:35
程序启动后显示A窗口,A窗口有60秒倒计时,60秒会后跳转到B窗口
A窗口启动后,会启动一个新的c线程,来执行刷卡操作,30秒后c线程结束并弹出messagebox
现在如果不关闭messagebox,倒计时60秒完成后跳转到B窗口,但是之前那个messagebox并没有关闭
这种情况如何处理?
...全文
393 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2016-08-01
  • 打赏
  • 举报
回复
为什么非要用messagebox,可以把刷卡结果信息显示到label上啊,或者其他方式,总之,既然他显示信息,也让它不要影响后续工作
bigbaldy 2016-08-01
  • 打赏
  • 举报
回复
到了60秒的时候直接把那个messagebox关闭不就行了,没明白你的问题是?
ypgsh 2016-08-01
  • 打赏
  • 举报
回复
用join方法
xujun5031 2016-08-01
  • 打赏
  • 举报
回复
引用 10 楼 johnliuyuan 的回复:
是啊,web你为啥要弹mssagebox啊
不是web 我是做web方向的 这个项目是winform
john_QQ:2335298917 2016-08-01
  • 打赏
  • 举报
回复
是啊,web你为啥要弹mssagebox啊
by_封爱 版主 2016-08-01
  • 打赏
  • 举报
回复
web....messagebox...线程.....
xujun5031 2016-08-01
  • 打赏
  • 举报
回复
引用 3 楼 yiran_autumn 的回复:
[DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)] private extern static IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); public const int WM_CLOSE = 0x10; MessageBox.Show("text", "caption"); //按照MessageBox的标题,找到MessageBox的窗口 IntPtr ptr = FindWindow(null, "caption"); if (ptr != IntPtr.Zero) { //找到则关闭MessageBox窗口 PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); }
谢啦,搞定
xujun5031 2016-08-01
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
线程让有些人疯狂,以为花哨好看。你在子线程(而非UI主线程)中打开一个子窗口,你觉得真的能继续好看下去吗? 你现在根本不适合接触线程。根本就是在拿着鸡毛胡乱往头上戴,哄哄不太懂编程的同学也许可以,而其实是多余的。
子线程弹出的messagebox是UI线程的
xujun5031 2016-08-01
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
简单直接的程序是扯不上线程的。 不胡乱滥用线程,你也就自然就会编程了。
大神,小弟做web的,这次完全是赶鸭子上架,这种情况下要保证界面不卡死,不单开一个操作线程,实在想不出其他方法了
  • 打赏
  • 举报
回复
线程让有些人疯狂,以为花哨好看。你在子线程(而非UI主线程)中打开一个子窗口,你觉得真的能继续好看下去吗? 你现在根本不适合接触线程。根本就是在拿着鸡毛胡乱往头上戴,哄哄不太懂编程的同学也许可以,而其实是多余的。
  • 打赏
  • 举报
回复
简单直接的程序是扯不上线程的。 不胡乱滥用线程,你也就自然就会编程了。
yiran_autumn 2016-08-01
  • 打赏
  • 举报
回复
[DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)] private extern static IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); public const int WM_CLOSE = 0x10; MessageBox.Show("text", "caption"); //按照MessageBox的标题,找到MessageBox的窗口 IntPtr ptr = FindWindow(null, "caption"); if (ptr != IntPtr.Zero) { //找到则关闭MessageBox窗口 PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); }
小鬼当家家 2016-08-01
  • 打赏
  • 举报
回复
你可以自己写一个类似MessageBox的form弹出,然后关闭
xujun5031 2016-08-01
  • 打赏
  • 举报
回复
人工置顶。。。。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧