SetCameraCount
コントロールが実際に表示される前および/または後に使用できるメソッドを持つ UserControl を作成しています。
コントロールが表示される前にSetCameraCount
が使用された場合は、コントロールが最初に読み込まれたときにそれを使用するように設定する以外に何もすべきではありません。cameraCount
コントロールのロード後SetCameraCount
にis used が設定されている場合、コントロールは、新しい値を使用して初めてロードされたときと同じ方法で更新されます。cameraCount
これを実現するために_IsLoaded
、bool として使用して、UserControl がロードされているかどうかを確認しています。
bool _IsLoaded;
int cameraCount;
public void SetCameraCount(int cameraCount)
{
if (this.cameraCount != cameraCount)
{
this.cameraCount = cameraCount;
if (_IsLoaded)
buildMenu();
}
}
void CamMultiple_Load(object sender, EventArgs e)
{
buildMenu();
_IsLoaded = true;
}
void buildMenu()
{
// this method will absolutely fail if the control is not loaded
// ...
}
私はこのパターンを非常に頻繁に使用しています。
_IsLoaded
正常に動作しますが、 bool を Windows フォームに既に実装されているプロパティに置き換えることができるのではないかと思います。今のところ、何も見つかりませんでした。そんな物件をご存知ですか?