web-dev-qa-db-ja.com

System.ComponentModel.Design.ExceptionCollection

CodePlex にあるリボンコントロールを使用しており、 ここ にあるチュートリアルに従っています。参照とデザイナの適切なコードを追加すると、フォームを表示しようとすると次のエラーが発生します。

タイプ 'System.ComponentModel.Design.ExceptionCollection'の例外がスローされました

そして、私は自分が間違っていることを理解できません。誰かがこのコントロールを使用して、この問題を解決する方法を知っていますか?

22
PsychoCoder

面白い;私は自分のフォームの1つでこれと同じ問題に遭遇しました。それが私があなたの関連する最近の質問を見つけた方法です。

これが私がそれを解決した方法です:

  1. VisualStudioの2つのインスタンスを開きます。両方で同じプロジェクトを開きます。
  2. 1つの例では、[デバッグ]-> [例外]に移動し、すべての[スロー]オプションを有効にして、最初のチャンスで例外を停止します。これにより、例外が生成されたときにデバッガーが停止します。
  3. 同じインスタンスで、[デバッグ]-> [プロセスにアタッチ]を選択し、devenv.exeを選択します。
  4. 他の例では、フォームを開いて例外を発生させます
  5. 運が良ければ、最初のインスタンスはどこかで停止し、より関連性の高い例外が発生するはずです。

私の場合、それは私が条件付けすべきものであることが判明しました:

if (!DesignMode)
{
  // Do something that should only happen at runtime
}

後でこれらの「スロー」オプションをすべてオフにすることを忘れないでください。

33
pilotcam

私の回避策は次のとおりです。

  1. フォームを右クリックして「コードを表示」
  2. コードをエディターにロードしたままにしてから、デザイナーの表示を再試行してください。

これは非常にグリッチな感じがして、コードに問題があるのか​​(まったく新しいコードベースで作業しているため)、VS2012のバグなのかを確認できません。わかったら、報告します。

3
dev'd

私は同じ問題を抱えていましたが、上記の答えのどれも問題を解決しませんでした。

最後に、「bin」フォルダを空にして再構築することでうまくいきました。

2
Sleephead

このような例外が発生する可能性がある場合と、コントロールがデザインモードで許可されていないことを実行しようとする場合をさらに2つ追加します。

  1. ユーザーコントロールをコンパイルできない場合。
  2. デザイナコードに、同じコントロールまたはプロパティの初期化を伴う複数の類似した(または同一の)行が含まれている場合、これはマージ時に簡単に発生する可能性があります。

これらすべてのケースで、同じ非常に意味のあるエラーメッセージが生成されます。この特定の場合、Visual Studioの2つのデバッグは役に立たないため、デザイナーコードを二等分することになりました。

0
Andriy K
[ReadOnly(true)]

[Browsable(false)]

とりわけ、プロパティは私のために働いた

0
JustSomeGuy