显然是多线程的问题,Form可以在任何线程中创建,但是创建出来的窗体将不能切换到其他的线程,
所以你的问题可能是OutlookBar中使用了多线程,当点击按钮的时候新建的窗口所在的线程与Controls.AddRange所在的不同

解决方案 »

  1.   

    呵呵,楼上的说得对,Control对于多线程是非安全的。它只是符合微软的STA模式,你想在多线程中添加得通过异步调用通知界面那个线程,通过界面的BeginInvoke方法再将control加上去,或者参考MSDN中的那个STA的例子,按它那样写程序。
      

  2.   

    Controls.addRanges() 方法在 创建的窗口InitializeComponent()方法中, 还会有多线程的问题吗
      

  3.   

    在Mdi的构造函数中 直接生成outlookbar 界面 ,加了一个线程只是启动一个另外一个exe程序
    跟界面没关系,在outlookbar点击事件中没有用多线程