このコメントを別の質問にクロス投稿しましたが、これはここに関連しているため、もう一度です。
ユーザー コントロールが Visual Studio デザイナーに読み込まれない場合は、ここで行う必要があります。これらの命令は vb.net プロジェクト用ですが、c# も同様です。また、これを行う前に、開いているすべてのウィンドウ (または少なくとも、作業中のコントロールのソース ファイルとデザイナー ファイル) を閉じます。
最後に一つだけ。最初にすべきことは、Visual Studio を再起動しても問題が解決しないことを確認することです。そうでない場合は、次の手順を試すことができます。これらの手順は、誤ったユーザー コントロールが Visual Studio のコントロール ライブラリ プロジェクトにあることを前提としています。そうでない場合は、方向を少し調整して機能させることができるはずですが、コントロールが独自のプロジェクトにある場合ははるかに簡単です。
以下をせよ:
- コントロール ライブラリをスタートアップ プロジェクトにします。
- コントロール ライブラリ プロジェクトのプロパティを開き、[デバッグ] タブをクリックします。
- [アクションの開始] で [外部プログラムの開始] オプションをクリックし、Visual Studio 実行可能ファイルを参照します。
注: これは、ソリューションを実行すると、実際にソリューションを実行する代わりに、Visual Studio の別のインスタンスが起動されることを意味します。Visual Studio の最初のインスタンス (INSTANCE_1) は、実行時に Visual Studio の 2 番目のインスタンス (INSTANCE_2) を "ホスト" します。
- ソリューションを実行します。INSTANCE_2 が読み込まれます。
- INSTANCE_1 に戻ります。
- INSTANCE_1 で CTRL-ALT-E を押します。これにより、例外ダイアログ ボックスが開きます。共通言語ランタイム例外の横にある [スロー] 列のチェックボックスをオンにします。
注: これにより、try ブロックでヒットした場合でも、INSTANCE_1 が実行時エラーで確実に中断されます。
- INSTANCE_2 に切り替えます。ソリューション エクスプローラーで、誤ったユーザー コントロールをダブルクリックして開きます。
INSTANCE_1 OF Visual Studio は、デザイナーがコントロールを読み込まない原因となったコード行で停止しているはずです。コードを修正します (通常は、オブジェクト プロパティを参照する前に IsNot Nothing をテストすることを意味しますが、他のことを意味する場合もあります)。
また、INSTANCE_1 のエラーで中断するのではなく、コントロールが INSTANCE_2 に読み込まれることがあります。その場合は、デバッグを停止してください... INSTANCE_2 を閉じます。INSTANCE_1 を保存して再起動すると、多くの場合、問題が解消されます。
教訓はこれです。ユーザー コントロールは、デザイナーに読み込むために、すべてのオブジェクトとそのメンバーを読み込み/参照できる必要があります。そのため、他のコンテナーに配置されるユーザー コントロールについては、通常、オブジェクトを子コントロールにプッシュするのではなく、親に通知するイベントを設計します。
これが、この古い質問に関する将来の参照に役立つことを願っています。
セス