<c#>我在C#中使用ActiveX控件MsFlexGrid,出现了下的问题。 问题已解决,很高兴,散分 (200分)

  • 主题发起人 主题发起人 chinaplate
  • 开始时间 开始时间
C

chinaplate

Unregistered / Unconfirmed
GUEST, unregistred user!
我把MsFlexGrid控件放在一个UserControl中,写出我自己用的一个简单的
GRID,然后将这个UserControl(命名为SimplyGrid),放在我的窗口中,当这个窗口一实例化时,就出错了。
错误停在这一行,也就上在实例化MsFlexGrid时出错
this.axMSFlexGrid1 = new AxMSFlexGridLib.AxMSFlexGrid();

错误提示如下:
--------------------------------------------------------------------
未处理的“System.Threading.ThreadStateException”类型的异常出现在 system.windows.forms.dll 中
其他信息:因为当前线程不在单线程单元中,故无法实例化 ActiveX 控件“6262d3a0-531b-11cf-91f6-c2863c385e30”。
--------------------------------------------------------------------
将MsFlexGrid换成其它组件,也同样出错。
可是我用同一个思路,去建立另一个解决方案时,却一切正常。
就是说我的当前解决方案有点问题,
到底是什么问题?
它说的单线程单元是谁?
 
哈哈,OK了。
我的解决方案有多个项目组成。
启动项目只有一个简单的类,其它的东西,如窗口,组件之类的都在一个类项目里(DLL),
然后我在启动项目中调用类项目中的主窗口。
象这样:
public class Run
{
public static void Main()
{
Application.Run(new MdiMain());
}
}
就这样一直没有问题,但当我使用一个ActiveX控件时,就出现了上述的错误。
嘿嘿,只要在Main()上加上[STAThread]属性,就一切OK了。
 
拿把分给我吧!^_^
 
hi,你的名字和深圳思源有关系吗?
 
当我用C#进行MsFlexGrid网格合并时也出现错误提示如下:
未处理的“System.Threading.ThreadStateException”
类型的异常出现在 system.windows.forms.dll 中
但是我Main()已加上[STAThread]属性,请问如向解决!

 
后退
顶部