0


0

dllからカスタマイズされたフォームをエクスポートする際の問題

私はアプリケーションに取り組んでいるので、いくつかの追加の作業とメソッドを持つフォームを含むdllを書いています。 そのため、私のプログラムの最初に、スレッドがこのフォームを(私のDLLから)起動して情報を取得し、非表示にしてコンポーネントとアプリケーションフォームを初期化してから表示します。 エクスポートされたフォームの新しいインスタンスを定義する行にスレッドが来るとき

"MyForm inputform = new MyForm();"

「トップレベルコントロールをコントロールに追加できません」という例外をスローします。だから私は何をすべきかわからない?! 私はdllソースコードからフォームのコードを取り、それをメインプログラムに入れようとしましたが、それは動作します…​ しかし、私は何が起こるのか、私のアプリケーションが私のDLLからそのフォームを実行するのを妨げるものを知りたいです。 ありがとう。

1 Answer


2


エラーが発生する行は、おそらく上に示した行ではなく、おそらくその後に続く行の1つです。 つまり、次のようなものがある場合:

currentControl.Controls.Add(inputForm);

動作せず、言及したエラーが発生します。

代わりに、 `inputForm.Show(ownerForm)`を使用して、必要なときにフォームを表示します。 フォーム(トップレベルコントロール)は、パネル、テキストボックス、ピクチャボックスなどの通常のコントロールに追加できません。

注:投稿の行でエラーが発生する場合、フォーム初期化コード内にエラーを発生させるコードがありますので、そこを確認してください