C# 激活器在组合框设置自动完成模式下崩溃

C# 激活器在组合框设置自动完成模式下崩溃,c#,winforms,combobox,activator,C#,Winforms,Combobox,Activator,我需要使用activator实例化表单,因为我需要迭代所有表单的控件来设置属性。对于这个过程,我使用下面的代码 using (Form frm = (Form)Activator.CreateInstance(type)) { using (SqlConnection cn = new SqlConnection(Program.connectionString))

我需要使用activator实例化表单,因为我需要迭代所有表单的控件来设置属性。对于这个过程,我使用下面的代码

using (Form frm = (Form)Activator.CreateInstance(type))
                    {
                        using (SqlConnection cn = new SqlConnection(Program.connectionString))
                        {

                            cn.Open();
                            General.ProcessControls(cn, frm, frm.GetType().Name);
                            cn.Close();
                        }
                    }
在这里之前一切都好。上面的代码对所有表单都很有吸引力,除了我在SuggestAppend模式下设置了一个带有自动完成模式的组合框之外。在这种形式下,当我的应用程序尝试设置自动完成模式时,调用TargetException将函数InitializeComponent()崩溃。下面是我的应用程序崩溃的代码行

 this.comboBoxAreaType.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
        this.comboBoxAreaType.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; 

有没有办法解决这个问题

agent-j你的评论对理解出了什么问题很有帮助

在调用thread start()之前,我添加了下面的命令将我的线程设置为STA AppartmentState,现在它就像一个符咒一样工作

thread.SetApartmentState(ApartmentState.STA);

TargetInvocationException的内部异常是什么?哪个线程正在运行
Activator.CreateInstance
?它是主UI线程吗?(Visual Studio的“线程”窗口中的绿色部分)。A)内部异常是“在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保主函数上标记了STAThreadAttribute。”B)执行所有此作业的过程在单独的线程中运行,而不是在主UI线程中运行。