« 【株】 2014/11/07(金) ±0 日経平均△87.9 | トップページ | 【株】 2014/11/10(月) ±0 日経平均▼99.85 »

【C#備忘ログ】 2014/11/08(土) C#でFormをデザインできなくなる

Visual C#でソースコードをいじっていたらFormがデザイナーで表示できなくなってた、なんてよくありますよね。
Form
この現象が出たら、保存前のバージョンをチェックアウトして・・なんてやってませんか?
この現象が発生するのは、Formのソースファイル(Form1.csなど)に問題がある時です。
問題とは、C#の文法的に正しいかどうかではなく、デザイナーがこのソースファイルを正しく読み込めるかどうかです。
ありがちなパターン1
Formに独自機能を追加させるために、親クラスを追加した、あるいはFormのクラスを抽象クラスにした
namespace BindingListTest
{
    public partial class Form1 : CustomForm
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}
この場合、CustomFormが抽象クラスであった場合に発生します。
ここに詳しく解説されています。
仕方ないので、構成マネージャで「VIEW_TEST」などを作ったのち、プロジェクトのプロパティからビルドを選択し、「条件付きコンパイルシンボル」にVIEW_TESTを追加。
さらに、ソースコードのクラス定義してる行を以下のように切り替え式に。
#if VIEW_TEST
    public partial class Form1 : Form
#else
    public partial class Form1 : CustomForm
#endif
ありがちなパターン2
Formのソースには、Formクラス以外にも独自クラスを追加するかも知れませんが、Formクラスよりも上で定義するとこの現象が出ます。
namespace BindingListTest
{
    public class user
    {
 public user()
        {
        }
    }
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}
これで現象が出た場合・・
namespace BindingListTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
    public class user
    {
 public user()
        {
        }
    }
}
こうします。

« 【株】 2014/11/07(金) ±0 日経平均△87.9 | トップページ | 【株】 2014/11/10(月) ±0 日経平均▼99.85 »

C言語」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/36872/57921026

この記事へのトラックバック一覧です: 【C#備忘ログ】 2014/11/08(土) C#でFormをデザインできなくなる:

« 【株】 2014/11/07(金) ±0 日経平均△87.9 | トップページ | 【株】 2014/11/10(月) ±0 日経平均▼99.85 »

amazon

マイリスト

  • 暮らしをおトクにかえていく|ポイントインカム
  • 暮らしをおトクにかえていく|ポイントインカム
  • フルーツメール
無料ブログはココログ