2011-11-11 7 views
6

VS2008デザイナを使用して、Windows.Formクラスから派生したクラスAを持っています。 Visual Studioソリューションエクスプローラでファイル名をダブルクリックすると、フォームデザイナが開きます。これが望ましい動作です。Visual Studio 2008で派生クラスのデザイナーを無効にする

私はAから派生した第2のクラスBを(手動で)持っています。このクラスは純粋なコードです。いくつかの機能を追加しますが、フォームは同じですが、Visual Studioのソリューションエクスプローラでファイル名をダブルクリックすると、フォームデザイナーが開きます。 これは望ましくない動作です。特に、同様に派生したクラスC-Zを生成する必要があるため、です。

コードエディタでファイルを常に開くように強制する方法はありますか?私は2つの提案の回避策を知ってる:

  1. 与えるクラスB属性:[System.ComponentModel.DesignerCategory(「」)]これは、様々な投稿によると、過去に働いているように見えます

    、私の状況には何の影響もないようです。 VS環境はまだクラスのフォームデザイナを開こうとします。

  2. がmeaningfulname.Designer.cs

    これにソースファイルの名前を変更...よく、それだけで素敵ではない、それはありますか?

ソリューション(1)はまだ動作しますか?もしそうなら、私は何が間違っているかもしれませんか?

また、別の解決策がありますか?

答えて

9

[System.ComponentModel.DesignerCategory("Code")]を代わりに使用してください。

+0

私もこれを試しましたが、成功しませんでした。モーメントBはAから派生するように設定され、環境はGUIクラスとしてそれを分類する。基本クラスを削除すると、元のクラスに戻ります。 – MZB

+1

@MZB:属性で完全修飾名を使用しなければならないようですが、これをしていますか?そうでなければ、私は提案から外れています。 –

+1

天才!あなたは正しい。 System.ComponentModelをインポートすると、完全修飾パスは使用されませんでした。奇妙なマイクロソフトのバグ... – MZB