[VB.NET]Windowsアプリに、Page_PreRenderイベントは存在するか

このQ&Aのポイント
  • VB.NET2003,2005についての質問です。Windowsアプリにおいて、各コントロールのイベントでフラグAの値を設定し、終了後に処理Bを実行したいと考えています。しかし、Page_PreRenderイベントのようなものは存在しないため、どのように実現できるのかについて教えてください。
  • Windowsアプリケーションにおいて、各コントロールのイベントでフラグAの値を設定し、終了後に処理Bを実行したいと考えています。しかし、ASP.NETのようなPage_PreRenderイベントは存在しないため、他の方法でこの処理を実現する必要があります。どのような方法がありますか?
  • Windowsアプリケーションにおいて、各コントロールのイベントでフラグAの値を設定し、終了後に処理Bを実行する方法について教えてください。VB.NET2003とVB.NET2005の場合の違いも教えていただけると助かります。
回答を見る
  • ベストアンサー

[VB.NET]Windowsアプリに、Page_PreRenderイベントは存在するか

VB.NET2003,2005についての質問です。 下記の処理を、Windowsアプリケーションで実現することは可能でしょうか。   ・各コントロールのイベントで、メンバ変数であるフラグAに、値を設定する処理を行う。   ・各コントロールのイベントが「終了後」、このフラグAの内容によって、処理Bを実行したい。     例)ボタンクリックイベント→処理B       テキストチェンジイベント→処理B     ※各コントロールのイベントには、フラグAの判定処理を組み込まない 上記の処理は、ASP.NETであれば、Page_PreRenderイベントを利用することで実現できました。 Windowsアプリケーションには、ASP.NETにおける、Page_PreRenderイベントのようなものは存在するでしょうか。 存在しなければ、どのような方法で上記の処理を実現できるでしょうか。 以上、どうぞよろしくお願い致します。

  • tekan
  • お礼率80% (46/57)

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

根本的にアプリケーションの構造が違うので同じ処理はありません Webアプリの場合 1 クライアントがページを要求 2 サーバーが要求によるページを構築 3 クライアントにページ内容を送信 4 クライアントでページが表示される 2の処理において ページを構築する前処理が Page_PreRenderになると思います Windowsアプリにおいて似たような処理は Window作成時のイベントだろうと考えます しかし一度作成されたウィンドウが破棄されずにその中のコントロールので発生したイベントに対してご希望のような処理は無いかと思います # 現実的では無いですが 使用するコントロールをUserコントロールでラップして そのコントロールの公開イベントの内部処理において所定の処理を実効出来るようにする といった方法が考えられます 一般的な解決方法なら コントロールのイベント処理毎に自前のイベントハンドラを記述して AddHandlerでコントロールのイベントとハンドラを紐付けします 自前ハンドラで希望のフラグ処理などを行ってから 引数senderで判断して 本来のイベントハンドラを処理実行といった具合でしょう

tekan
質問者

お礼

redfox63さん 丁寧な解説、恐縮です。 Windowsアプリでは構造上無理、ということを明解にご教示頂いたので、気持ちを切り替えて、違ったアプローチを試みることができそうです。 ご紹介頂いた方法を、これから試してみようと思います。 ご回答どうもありがとうございました。

その他の回答 (1)

  • gab_snow
  • ベストアンサー率30% (3/10)
回答No.1

こんばんは なぜ >※各コントロールのイベントには、フラグAの判定処理を組み込まない なのでしょう?修正範囲が沢山になるとかでしょうか? 質問の内容からすると 処理BでフラグAを判断 で良さそうですがだめですか?

tekan
質問者

お礼

gab_snowさん >修正範囲が沢山になるとかでしょうか? ご推察のとおりです。 なかなか手間がかかりそうな作業を抱えていまして。。 >処理BでフラグAを判断 申し訳ありません、質問がわかりづらいものであったかもしれません。 仰る通りの処理を実現したいと考えていました。 しかし、処理Bへ遷移する方法がわからなかった次第です。 ご回答どうもありがとうございました。

関連するQ&A

  • 各イベントの共通の前処理は存在する?(VB.NET)

    VS.NET2003,VBについての質問です。 ASP.NETでは、WebControlsのイベントを発生させるたびに(ボタンを押したり、テキスト変更したりなど)、 Page_Load>WebControlsイベントの順番で、イベントが発生することを確認しました。 Windowsアプリケーションにおいて、上記のPage_Loadに該当するイベントは存在するでしょうか。 つまり、Windows.Formsコントロールのイベント処理が発生するたびに、その前処理として実行される、上記のPage_Loadのような共通のイベントは存在するでしょうか。 以上、どうぞよろしくお願い致します。

  • 別フォームから戻ったときのイベント

    VB.NETの質問です。 フォームA(以下A)から、フォームB(以下B)を モーダル表示で呼びだした後Bを閉じて、Aに戻ったときに、 フラグを立てたいと思っています。 このタイミングのイベントは どのようにして取ればよいのでしょうか? ちなにみAのActivatedイベントで試してみたのですが、 結果NGでした。 Aの上にBが重なっている状態で Bの部分的に見える箇所を一瞬クリックしても Activatedイベントが実行されてしまい、 フラグが立ってしまします。 もちろんモーダル表示なので、Aが前面にくることは ないのですが、なぜかActivatedイベントが実行されてしまいます。 きちんとBを閉じて、Aに戻った時に限り フラグを立てたいと思っています。 Bを閉じた時にB側でフラグを立てる方法もありますが、 仕様の都合上、A側で処理をさせたいのです。 以上、わかりづらいかもしれませんが ご存じの方がいましたらご教授ください。

  • PageクラスのDisposedイベントについて教えて

    PageクラスのDisposedイベントについて教えて下さい。 VS2005 VB.Net環境でwebサイトを作成し、Default.aspxに以下のコードを書きました。 Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.Text = "Page_Load通過。" End Sub Protected Sub Page_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed Label1.Text = "Page_Disposed通過。" End Sub End Class 目的は、Page_DisposedメソッドのMe.Disposedイベントはいつ発生するのか知りたいのです。 MSDNライブラリでは、 『サーバー コントロールがメモリから解放されると発生します。 これは、ASP.NET ページが要求されている場合の サーバー コントロールの有効期間における最終段階です。』 とありますが、良くわかりません。。。 ご教授下さい、宜しくお願い致します。

  • VB.NETでボタンクリックイベントの後に来るPage_Loadのようなイベントはありますか?

    タイトルのとおりなのですが、 VB.NETでボタンクリックイベントの後に来るPage_Loadのようなイベントはありますか? 教えてくださいーー

  • ASP.NET 動的に行を増やすTable

    ASP.NET(VB)アプリケーションでボタンが押される度に、 行を追加するTableを作りたいです。 初期表示時にPage_Initで5行のtableを作成するようにしています。 ボタンクリックイベントで行数を増やしていくのですが、 他のコントロール(asp.textbox)のテキストチェンジイベントでPostBackが発生すると、 元の5行に戻ってしまいます。 Page_Initで5行と指定しているためなので、 ここの指定数をPostBack前に保持した行数にすれば良いと思ったのですが、 もっと他にスマートな方法はありませんでしょうか? もし、保持する方法をとる場合は、セッションなどで保持するべきでしょうか?

  • 変更イベント

    テキストフィールドAとBがあり、どちらか一方でもテキストを変更されると ボタンCのEnabled属性がtrue(デフォルトでfalseに設定している)ようにしたいと考えています。 通常ならば、テキストフィールドAとBのTextChangedイベントに ボタンCのEnabled属性をtrueとするように記述すれば良いだけなのですが 今回、テキストフィールドAとBは汎用的なユーザーコントロールD内に存在しており ボタンCはそのユーザコントロールDを含むフォーム上に存在しています。 つまり、ユーザコントロール上に存在するテキストフィールドが変更された時に フォーム上のボタンのEnabled属性をtrueとしたいのですが テキストフィールドのTextChangedイベントの処理内容にフォームに対する処理を記述すると フォームとユーザコントロールの依存度が高くなるのでそれを避けたいのです。 できればユーザコントロールの内容が変更されたときのイベントを フォーム側で拾えると一番いいかと思うのですが そのようなことは可能でしょうか? あるいは何かいい方法はございますでしょうか?

  • イベントの取りこぼしについて

    教えて下さい。 VBで構築したアプリケーションにおいて、無限ループ内で処理を判断し、実行するようなプログラム構築にしています。この無限ループ内に「DoEvents」をセットしています。これによりOSに溜まっている、各イベントを処理していると思うのですが、処理するイベントに取りこぼしは発生しないのでしょうか? 現在、A/Dボードを実装しており、2ms周期でVBのイベントが発生するようなソフトになっています。「DoEvents」実行時に、OS側が処理に要する時間は、キューに溜まっているイベント数×1回のイベント処理時間で単純に導けるものでしょうか? また、CPUのスペックを2倍にすると、単純に処理時間は半分と計算できるものでしょうか?

  • jQuery と ASP.NETの、機能競合

    ◆やろうとしていること JQuery+JQueryMobile+ASP.net2.0 を使用して、 カレンダーから日付を選択させるモーダルウィンドウを作ろうとしています。 ◆質問内容 モーダルウィンドウを作り、そっちでの入力値を親に返そうという処理を実装しようとしたとき、 ASPのイベントも、JQueryのイベントも、処理が終わったら「呼び元に戻す」ということをしていると思います。 で、おそらく、 (1)JQueryの$("buttonのセレクター").click でのハンドル (2)ASP.NETでの、with Event コントロール名、handles イベント名での、イベントハンドルと があり、以下の2つの機能をうまく融合できなくて困っています。 A:モーダルウィンドウの作成は、JQueryでは、結局は同じHTML内に、DOMでコントロールが追加・更新されるだけで、<HTML></HTML>の単位ではなく、<data-role=page>の単位で書き換えをする。 B:モーダルウィンドウを出そうとしているため、<HTML></HTML>の単位で、 ウィンドウが作成され、ユーザが見ているページのURLは、「親ウィンドウ」のURLとは異なる。 上記認識で合っていますでしょうか? 宜しくお願い致します。 ****************************************************** ◆解決の方向性? 案1:JQueryUIなり、JQuery Mobileのカレンダーを探し、それだけを使う。    その際は、ASP.NETでは、ASP:Clender などは使わない。    (asp:Calenderや、asp:HyperLink等は使わない。同じ画面のURLで処理ができなくなるため) 案2:JQueryでの「$("buttonのセレクター").click でのハンドル」など、    動いてしまうイベントを、かたっぱしから、処理がキャンセルされるようにする。    (jQueryのDOMの差し替えを、全て無効にするため。)    ⇒ すべてのイベントを把握&実装するのは現実ではないた、この案は取れない。 上記認識で合っていますでしょうか? 宜しくお願い致します。

  • ASP.NET 動的コントロールのフォーカス移動

    ASP.NET(VB)で開発しています。 Page_init時に生成されるテキストボックス1、2(動的コントロール)を表示します。 テキストボックス1のテキストチェンジイベント時に テキストボックス2にフォーカスが移動するようにしたいです。 テキストチェンジでPostBackが発生し、サーバ側でテキストボックス2.Focus() と記述しているのですが、動作は、テキストボックス2に フォーカスが移らず、画面上のどこにもフォーカスがあたっていない状態になってしまいます。 動的コントロールへ、PostBack時にフォーカス移動させるにはどうしたら良いか お願いいたします。

  • WEBユーザーコントロール

    ASP.NETで開発をしております。fw2.0です。 WEBユーザーコントロールでDBの読み込み画面AとDBの書き込み画面Bを作ったとします。 WEBフォームにAとBをのっけた場合、Bの書き込み処理が終わった後にAの表示を更新させる にはどうしたらいいのでしょうか? イベントのとり方がわからなくて困っています。 ユーザーコントロールを使わなければ普通にイベントを取れるのですが。。。 出来ればユーザーコントロールを使いたいので WEBフォームでユーザーコントロールのイベントを取る方法があれば教えてください。

専門家に質問してみよう