我需要使用激活器实例化表单,因为我需要迭代所有表单的控件来设置属性。对于这个程序,我使用下面的代码。
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;
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
agent-j你的评论非常有助于理解出了什么问题。
我在调用线程start()之前添加命令bellow将我的线程设置为STA AppartmentState,现在它就像魅力一样。
thread.SetApartmentState(ApartmentState.STA);