UseControlをフォームに張り付けたらVisualStudioが異常終了するようになった

VIsualStudio2008のC#プロジェクトでUseControlを使ったコードを書いていたら貼り付けたフォームを編集しようとすると必ずVIsualStudioが異常終了するようになりました。
原因はUseControl内の初期化コードを書く場所でした。


-----------------------------------------
public TestFoem()
{
InitializeComponent();
}
-----------------------------------------

くせでコンストラクタに自動生成されているInitializeComponent()の後に初期化コードを書いてました。


-----------------------------------------
public TestFoem()
{
InitializeComponent();
if (!this.DesignMode)
{
timer1.Start();
}
}
-----------------------------------------

この初期化コードをロードイベントにもっていったら異常終了しなくなりました。


-----------------------------------------
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!this.DesignMode)
{
timer1.Start();
}
}
-----------------------------------------

ただし、コンストラクタとロードイベントは実行されるタイミングに大きな違いがあるので気を付けましょう。

Author: kachi

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です