2011-01-11 15 views
2

私はC#Windowsフォームプロジェクトを持っていて、プロジェクトを開いたときにデザイナービューが突然空白のフォームしか表示されませんでした。これを引き起こした原因はわかりませんが、ツールボックスにサードパーティ製のコントロールを追加してから起こったようです。デザイナーのコードはまだすべてそこにあり、私はアプリを実行すると、すべてのコントロールが正常に動作しています。誰でもフォームデザイナを再同期してコントロールを適切に表示できるように、どのようなアイデアが得られましたか。これは私が簡単に再現できる比較的シンプルな形ですが、もっと複雑なことで起こっていることについて少し気をつけています。Visual Studio 2008 Windowsフォームデザイナを再同期するにはどうすればよいですか?

ありがとうございました。

+1

フォームコンストラクタ内のtry/catch文をすべて削除します。 –

+0

ありがとうHansがフォームのコンストラクタには標準のInitializeArea()が含まれています – rob

+0

空白のフォームプロジェクトを作成し、InitializeComponents()で生成された3行のうち(申し訳ありませんが上記のInitializeArea()の代わりに) .components = new System.ComponentModel.Container(); – rob

答えて

0

は質問に対する私のコメントを参照してください。要約すると、* .Designer.csのInitializeComponent()メソッドは名前を変更してはいけません。そうしないと、デザイナーはフォームを表示できません。

0

サードパーティ製のコントロールは、間違いなくデザイナーを壊す可能性があります。間違った第三者のコントロールによって引き起こされたDocument Outlineの問題に関するmy questionを参照してください。

問題の可能性のあるコントロールへの参照をプロジェクトで検索することをお勧めします。ある時点でコントロールを追加しようとしたが、追加が失敗した場合、デザイナーを悩ませている残骸が残っている可能性があります。 .designerファイルも検索していることを確認してください。これは通常、コントロールがインスタンス化される場所です。

これが機能しない場合、私はVisual Studioからコントロールをアンインストールしようとします。

0

class Formには、DesignModeという名前のプロパティが公開されています。このプロパティは、VS内にいるかアプリケーションを実行しているかを示します。 通常IがらくたVS避けるために、私の形で次の操作を行います。すべてのVSのウィンドウを使用すると、プロジェクトを再構築するために、次に必要な違いと密接に見るためにはもちろん

public MyForm() 
{ 
    InitializeComponents(); 
    if (this.DesignMode) 
    { 
     return; 
    } 
} 

+0

これは正確に何を達成していますか? –

+0

デザインタイム(VIsual Studio)にいる場合は、これ以上のコードは実行しません。したがって、 – Raffaeu

+0

DesignModeがコンストラクタに何の影響も与えない場合は、その後にサードパーティコントロールを作成する必要があります。とにかくそれが有用であるコードは、ロードまたは表示されるべきである –

関連する問題