- - PR -
Initイベントがコールされない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-21 15:06
毎度お世話になっています。再び教えてください。。
Frameworkは2.0で、ASP.NETページのInitイベントを発生させたいと思い、Component DesignerからInitイベントを挿入しました。自動的にInitializeComponentも作成され、Initイベントのアサインがされていて、ここまで納得しました。 しかし実際に実行すると、InitイベントもInitializeComponentも呼ばれません。その2つのファンクションとPage_Loadイベントの3箇所にブレークポイントを置いたのですが、Page_Loadでブレークするだけで、あとは無視されてしましました。 どのページで試しても同じ結果なのですが、2.0ではInitイベントは使うな、、ということなのでしょうか?? | ||||
|
投稿日時: 2006-07-21 23:54
Component DesignerからInitイベントを挿入というのがよくわかりません。
aspxページではPage_Initを呼び出すか、OnInitをオーバーライドする形に なると思うのですが、挿入されたコードはそういった形になっていますでしょうか。 | ||||
|
投稿日時: 2006-07-22 04:04
なるほど、そうだったのですね。。オーバーライドしてばっちりOKでした。
私がトライしていたのは、そのPageのComponent Desinger Viewを開くと、プロパティー・ボックスからPageのイベントを選択できるようになっていて、ダブルクリックするとコードがCode Viewに挿入されたので、VS2005ではそうやるのかと思ってました。(でもじゃあこれはなんの為の機能なんでしょうか??) どうもありがとうございました、お騒がせしました。 [ メッセージ編集済み 編集者: Furi2 編集日時 2006-07-22 04:07 ] | ||||
|
投稿日時: 2006-07-22 18:23
はは、本当ですね。 ただ、誰が InitializeComponent を呼ぶかって話ですね。Init イベントに関してはこの方法は無理ですね。または、コンストラクタで InitializeComponent を呼んであげればOKですね。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-07-22 18:56
というより、この問題は Init イベントに限った話じゃないですね。少し不親切かも。
Page に対してコンポーネントデザイナを使う人は少ないかもしれませんが、InitializeComponent の呼び元が存在しません。 Visual Studio 2003 の時は、新規ページのテンプレートが OnInit をオーバーライドしていて、OnInit が InitializeComponent を呼んでいたので納得いくのですが。 コンポーネントデザイナで自動でイベントハンドラを作成する機能があるなら、自動で InitializeComponent の呼び元も設定してほしいですね。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-07-23 03:55
ほんとです!そしたら私のような初心者があたふたせずに済んだのに。。って、おかげで勉強にはなりましたが。 しかもデザイナで作成されたものを単純にoverrideと追記しても、baseクラスのOnInitを呼ぶステイトメントも挿入されてないですから、私みたいにわかってないとこれも混乱の元かも。 |
1