WinForm 父窗体隐藏到后台的问题

程序是这样的:
父窗体即主界面 子窗体为进度条
在父窗体定义一个线程指向“显示子窗体”的函数(该函数在子窗体中)
对硬件操作的耗时程序写在了子窗体里,操作完成后
将标识变量传递给父窗体,以便在父窗体中关闭线程

现在存在的问题是:
显示子窗体的线程开始后,主线程休眠0.5秒,在这0.5秒中父窗体还在前台
之后就看到父窗体标题头变灰
等子窗体自动关闭后弹出一个messagebox
点击确定关闭messagebox,父窗体就不见了
将所有打开的程序最小化 父窗体就躲在最后面
(整个过程父窗体还是在任务栏上能看到)

如何解决,求告解!

忙晕了,把问题搞错了
进度条不做什么事,只是用来告诉用户程序正在运行
耗时的程序在父窗体执行
进度条窗体的标识变量用于用户点击进度条上的“取消”按钮时,传回参数,中断硬件操作并关闭线程

其他问题就像前面说的一样
我对线程不怎么了解,之前只求达到效果,问题拖到现在必须解决了,不然老大会扁我。。。

ShowDialog 不要用 ,用show 子窗体属性 topmost =true
然后就是 弹出 子窗体用 异步线程
用控件 backgroundworker

仔细分析了一下,是关闭MessageBox后主窗体失去焦点
但点击进度条上的“取消”,强制中断扫描,也会弹出MessageBox,这时关闭MessageBox却是正常的
如果是用的ShowDialog的话,主窗体还是存在的,不能隐藏
frm.Show()
This.Hide()
这样的话主窗体是可以隐藏的,
当你的进度条结束后,在用FORM1.show再显示出来就可以了。

来源:英超直播

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值