- PR -

Initイベントがコールされない

1
投稿者投稿内容
Furi2
ベテラン
会議室デビュー日: 2004/10/28
投稿数: 74
お住まい・勤務地: N.Hollywood/Agoura Hills
投稿日時: 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イベントは使うな、、ということなのでしょうか??
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-07-21 23:54
Component DesignerからInitイベントを挿入というのがよくわかりません。

aspxページではPage_Initを呼び出すか、OnInitをオーバーライドする形に
なると思うのですが、挿入されたコードはそういった形になっていますでしょうか。
Furi2
ベテラン
会議室デビュー日: 2004/10/28
投稿数: 74
お住まい・勤務地: N.Hollywood/Agoura Hills
投稿日時: 2006-07-22 04:04
なるほど、そうだったのですね。。オーバーライドしてばっちりOKでした。

私がトライしていたのは、そのPageのComponent Desinger Viewを開くと、プロパティー・ボックスからPageのイベントを選択できるようになっていて、ダブルクリックするとコードがCode Viewに挿入されたので、VS2005ではそうやるのかと思ってました。(でもじゃあこれはなんの為の機能なんでしょうか??)

どうもありがとうございました、お騒がせしました。

[ メッセージ編集済み 編集者: Furi2 編集日時 2006-07-22 04:07 ]
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-07-22 18:23
引用:

私がトライしていたのは、そのPageのComponent Desinger Viewを開くと、プロパティー・ボックスからPageのイベントを選択できるようになっていて、ダブルクリックするとコードがCode Viewに挿入されたので、VS2005ではそうやるのかと思ってました。(でもじゃあこれはなんの為の機能なんでしょうか??)


はは、本当ですね。
ただ、誰が InitializeComponent を呼ぶかって話ですね。Init イベントに関してはこの方法は無理ですね。または、コンストラクタで InitializeComponent を呼んであげればOKですね。
_________________
囚人のジレンマな日々
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-07-22 18:56
というより、この問題は Init イベントに限った話じゃないですね。少し不親切かも。
Page に対してコンポーネントデザイナを使う人は少ないかもしれませんが、InitializeComponent の呼び元が存在しません。

Visual Studio 2003 の時は、新規ページのテンプレートが OnInit をオーバーライドしていて、OnInit が InitializeComponent を呼んでいたので納得いくのですが。

コンポーネントデザイナで自動でイベントハンドラを作成する機能があるなら、自動で InitializeComponent の呼び元も設定してほしいですね。
_________________
囚人のジレンマな日々
Furi2
ベテラン
会議室デビュー日: 2004/10/28
投稿数: 74
お住まい・勤務地: N.Hollywood/Agoura Hills
投稿日時: 2006-07-23 03:55
引用:

囚人さんの書き込み (2006-07-22 18:56) より:
というより、この問題は Init イベントに限った話じゃないですね。少し不親切かも。
Page に対してコンポーネントデザイナを使う人は少ないかもしれませんが、InitializeComponent の呼び元が存在しません。

Visual Studio 2003 の時は、新規ページのテンプレートが OnInit をオーバーライドしていて、OnInit が InitializeComponent を呼んでいたので納得いくのですが。

コンポーネントデザイナで自動でイベントハンドラを作成する機能があるなら、自動で InitializeComponent の呼び元も設定してほしいですね。




ほんとです!そしたら私のような初心者があたふたせずに済んだのに。。って、おかげで勉強にはなりましたが。
しかもデザイナで作成されたものを単純にoverrideと追記しても、baseクラスのOnInitを呼ぶステイトメントも挿入されてないですから、私みたいにわかってないとこれも混乱の元かも。
1

スキルアップ/キャリアアップ(JOB@IT)