[seasar-dotnet:1520] Re: [S2Form]Formのコンストラクタで例外発生後のLoadイベント

Hiroaki Fujii [E-MAIL ADDRESS DELETED]
2009年 11月 13日 (金) 22:36:12 JST


藤井です。

誤解しているかもしれませんが、FormをQuillコンテナに登録していると
いうことでよろしいでしょうか?

ならば、一度Formのオブジェクトをインスタンス化してQuillコンテナに
登録すると、Quillコンテナの中でずっと保持されます。
したがって、クラスのコンストラクタはnewされたときだけ呼び出されるので
Formのコンストラクタがもう一度呼ばれることはありません。

もう一度呼ぶにはnewし直すしかないでしょう。

そうすると、いつnewし直してQuillコンテナに登録し直すべきなのかを
考えるだけ、私には面倒なので(言葉に不快感を抱かれたら失礼!)、
FormのコンストラクタはInitializeComponentメソッドを呼ぶだけに
とどめておいて、画面の初期化処理はLoadイベントで処理しています。
そうすれば、QuillコンテナからFormオブジェクトが取り出され、表示されても
画面の初期化が実行されます。

私なら、保持している値を更新すべきかどうかをLoadイベント内で判断させて、
必要なら更新する道を選ぶと思います。


松崎 学 さんは書きました:
> 松崎と申します。お世話になります。
> 
> Quillを使って開発しています。
> 
> FormのコンストラクタでDBから値を取ってきて
> 画面の初期値設定などをやっているのですが、
> DB検索で例外が発生した場合、次に画面を開くと
> 画面の初期処理がされないままLoadイベントが発生するので、
> デザイン時の状態で画面が表示されてしまいます。
> 
> コンストラクタがもう一度呼ばれるようにしたいのですが、
> 良い対応方法を教えていただけませんか?
> 
> 現在、以下のバージョンを使用しています。
> S2Container.NET 1.3.15
> 
> 以上、よろしくお願いいたします。
> 
> --
> 松崎 学 <[E-MAIL ADDRESS DELETED]>
> 
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 



seasar-dotnet メーリングリストの案内