私は現在、.Net 2.0 の c# で実装しようとしているカスタム タブ コントロールのプロトタイプをまとめています。コントロール自体は正常に動作するため、現在、完全な設計時の動作を統合しようとしています。これには、タブも追加する必要があることを伝えるために、特定の時点でカスタム CodeDomSerializer が含まれます。これは現在うまく機能しています(試行錯誤の長いプロセスの後)。
しかし、デシリアライゼーションに関係していると思われる問題が残っています。デザイナー コードは適切に作成されており、デザイナーは同じように見えます。しかし、プロジェクトを再構築すると、フォーム デザイナーに次のエラーが表示されることがあります。
The variable 'piTabControl1' is either undeclared or was never assigned
http://msdn.microsoft.com/en-us/library/4008y84t(v=vs.80).aspx
エラーは毎回表示されるわけではありませんが、新しいタブを追加したときに常に発生します。エラーは次の行を指しています。
this.Controls.Add(this.piTabControl1);
しかし、これは数行前のコードにあるため、変数が割り当てられていることはわかっています。
this.piTabControl1 = new pdfforge.PdfCreator.Controls.PiTabControl();
アプリケーションは、すべてが適切に表示された状態でコンパイルおよび実行されます。デザイナーを閉じて再度開くと、そのエラーなしでも表示されます。そのため、コードの逆シリアル化またはデザイナーの更新時に問題が発生していると思われます。
ここに貼り付けるにはコードが多すぎるため、ここに完全なソリューションをアップロードしました。
http://www.chinery.de/dateien/TabControlTest.zip
プロジェクトでこれを再現するには、最初にカスタム コントロールをコンパイルするためにソリューション全体を再コンパイルする必要があります。次に、Form1 を開き、再構築を押します。エラーが発生しない場合は、タブ コントロールからタブを追加または削除してみてください。
フォーム デザイナーの内部状態がわからないため、これにどのようにアプローチすればよいかまったくわかりません。どんなヒントにもとても感謝しています。リクエストがあれば、ここに特定のコード スニペットを追加することもできます。