关于多个ShowModal窗口的问题(100分)

  • 主题发起人 主题发起人 saridon
  • 开始时间 开始时间
S

saridon

Unregistered / Unconfirmed
GUEST, unregistred user!
有三个Form,分别为Form1(bsSizeable),Form2(bsDialog),Form3(bsDialog)
Form1中有个Button,代码是:Form2.ShowModal;
Form2中有个Button,代码是:Form3.ShowModal;
运行的话,Form3应该在最上层窗口,Form2其次

但是我遇到这样一种情况(真正的窗口中有很多其他控件,Button,PageControl,CombolBox等):
调用后,切换到其他软件(比如:Word),然后在切换回这个程序,发现Form3跑到Form2后面去
了,如果能看到Form3还行,可以单击Form3使它获得焦点;但若看不到Form3(正好被Form2挡住)
,这个程序就没有任何反应,因为Form2和Form3都是Modal窗口方式运行,只能取得Form3,才能
控制Form2.而且此时用Alt+Tab切换任务就不能看到这个程序了.
望各位帮助一下,这是怎么回事呢?难道是Form2中的某些控件惹的祸.
 
OnShowModal事件好像跟是否被遮挡没有关系吧。可以把Form3的FormStyle设为fsStayontop
 
谢谢zbr的回复
把Form3的FormStyle设为StayTop是可以的(但切换后会挡住其他软件的),
这个方法暂时不能使用
但是我一直找不到引起这些问题的原因
 
ShowModal之后再ShowModal是不好的
 
你必须使用ShowModal吗?觉得show就可以了。
 
必须用ShowModal,
谢谢各位的参与,刚刚找到了解决方法
我是因为在Form1窗体上使用了ApplicationEvents组件引起的
结贴
 
后退
顶部