プロパティを設定するためにすべてのフォームのコントロールを反復する必要があるため、アクティベーターを使用してフォームをインスタンス化する必要があります。この手順では、以下のコードを使用しています。
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;
この問題を解決する方法はありますか?