1

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

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 模式下设置了自动完成模式的组合框。在这种形式中,我的应用程序在尝试设置自动完成模式时因 InvocationTargetException 而崩溃到函数 InitializeComponent() 中。下面是我的应用程序崩溃的代码行。

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

有没有办法解决这个问题?

4

1 回答 1

0

agent-j 您的评论对于了解出了什么问题非常有帮助。

我在调用线程 start() 之前添加了下面的命令以将我的线程设置为 STA AppartmentState,现在它就像一个魅力。

thread.SetApartmentState(ApartmentState.STA);
于 2012-05-26T17:52:20.923 回答