当前位置:主页>仓库管理软件> 列表

这个错在哪里?

企业管理软件版1楼: 请教一下:
三层(DCOM),服务端启动时隐藏主窗体,只留一个图标在系统托盘里。
问题:如果是手动启动并关闭服务端,则一切正常。如果是由客户端启动,当关闭时,服务端出现“无效的窗体句柄”的提示。如果把隐藏主窗体的功能去掉,则正常。为什么会这样呢

2楼: 不知道为什么,

不妨关闭前先 让他显示,然后关闭. 不就没事了? 如erp软件

3楼: to duhai_lee:
在formclose中吗,我试用啦,好象不起作用

4楼: 单步执行看看再哪句出的错喽~

估计是隐藏了以后窗体被释放掉了

5楼: 你用的多线程吧,应当在程序关闭之前就关闭线程,再关闭窗口,如果直接关闭窗口,而线程里面有对窗口的操作,而这时Form.Handle已经不存在,就会报这个错。

6楼: 在主程序里没用多线程,不过RDM里选threadingModel:apartment,应该没关系吧

企业管理软件版7楼: 关键是,去掉隐藏主窗体就正常.但隐藏后为什么会报这错呢

8楼: 我想大概是因为服务器由客户端启动,当客户关闭完后,服务器自动关闭了。出现这个错误,应该是托盘程序的错误。或许托盘功能找不到窗体了。

9楼: to xnew:
有可能,那托盘程序一个三方控件,能介绍个没bug的用用吗?

10楼: 你觉得窗体隐藏后还会有Handle吗?


我觉得当一个窗体在桌面消失后(隐藏)后,他的Handle也就释放了,当然就没有句柄了。

11楼: 那关闭前show出来为什么不行?

12楼: 我没有其控件。我想,如果真要找错,大概还是需要你的部分原代码。
隐藏后,Handle肯定存在,这不要置疑。 如免费进销存