我的程序中有三个Windows,A,B,C。
A和B为非模态,C是由A界面上的一个链接启动的模态窗体,C的Owner为A。
现在程序中的现象是如果A和B同时存在时启动C,由于C是模态窗体A和B均不能操作。
但是当只有A存在时启动C,A不能操作,这时再启动B,B仍然可以操作。我想法是怎么能让A和B同时存在时启动C,B仍然可以操作。C的Owner是A它应该只影响A,为什么B这时不能操作了呢?

解决方案 »

  1.   

    ^o^ 在C中控制B. 例如: B.ShowDialog();
      

  2.   

    To:shinaterry
    谢谢您的建议 
    我的程序中A和B属于主窗体级别的,并且它两个是通过程序间命令启动的。
    不能由C启动。
      

  3.   

    感觉是因为窗体A和B同时处在主线程中,模态窗体C启动时把父窗体A所在的线程挂起了,由于窗体B与窗体A处于同一线程中,所以窗体B就被牵连了。不敢确定,下午测试了,再发意见。
      

  4.   

    在一个程序中UI线程应该只有一个,C把UI线程挂起了,A和B都不可以操作了可以理解,
    为什么如果后启动B,B就可以操作呢??