主窗体 Show() 了几个相互独立的子窗体, 其中任何一个子窗体 ShowDialog(), 都会把其他窗体, 包括主窗体都 block 住, 目前困在这个地方了
感觉这样的设定很不合理, 一个程序中开多个窗体并行操作都没法做了请问有办法解决或者绕过吗? 不胜感激~

解决方案 »

  1.   

    直接用Show();
    不要ShowDialog(), 
      

  2.   

    Show(); 显示窗体
    此模式下依然可以对主窗体已经操作
      

  3.   

    子窗体中调用 ShowDialog() 显示下一级对话框...
    正在看资料, 似乎跟线程机制有关, 在尝试多线程的方案
      

  4.   

    都是Show()不就可以多窗口操作了、、、
      

  5.   

    ShowDialog方法是很有用的,显示为模式窗口,在很多场合是必须的,如果你不要“定住”的效果 就在子窗口上同样调Show()不就行了吗“一个程序中开多个窗体并行操作都没法做了”不太明白你的意思,UI异步这个推荐使用BackgroundWorker组件,实事上 用户来说
    一个时间总是只能在一个UI上做一种操作,总是线性的,如果遇到比较费时而卡的操作,这时
    才考虑使用异步技术来解决,除了上面那个组件以外,还可以使用 委托 做异步调用 。
      

  6.   

    在该子窗体上, 我需要"定住"的效果, 但是又不希望定住其他的子窗体, 这就是我的需求
    并行操作指的是 UI 的交互, 而不是后台运算, 即用户可以同时跟多个子窗体交互, 虽然一个子窗体因为 ShowDialog() "定住"了, 但我希望其他子窗体还能继续响应用户操作问题已经解决了, 在我开的另一个帖子里, 你有兴趣可以看下
    http://topic.csdn.net/u/20091223/12/167192ba-80ba-49ac-9f69-07289fe00687.html