- - PR -
画面表示直後に処理を行いたい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-22 01:18
Windowsフォームでアプリを開発しているのですが、
EXEを起動して最初に画面が表示された後に、自動的に ある処理を実行したいのですが、これはどうすれば 良いのでしょうか? よろしくお願いします。 Win2k + VS2003です。 | ||||||||
|
投稿日時: 2005-02-22 08:10
タイマーを使うのが簡単でしょう。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2005-02-22 09:11
ガーフィールドさん、お早うございます。
適当なイベントハンドラ(Activated とか Paintとかの)で処理を実行して、二度目が実行されないようにハンドラの関連づけを削除する、ってのはどうでしょう。 | ||||||||
|
投稿日時: 2005-02-22 10:25
の意図が、 ・プログラムを起動後に一回だけ処理したい、だったら Form_Load時の処理 Mainを置く http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19079&forum=7&3 ・ある画面がインスタンス化され表示される度に、表示された後に一回だけ実行したい、だったら渋木さん、ガーフィールドさんの方法 ・ある画面のインスタンスを作る毎に実行すればいいなら、そのインスタンスを作ったコードの前後どちらかに目的の処理を書く。ただし表示直後とは限らなくなります。 ・ある画面のインスタンスにかかわらず、そのクラスで1つ目のインスタンスが作成されるとき、ということなら、グローバルなスコープを持つフラグで制御 ほかにもいろいろ考えられます。 これまでに解決方法がでていない、ということでしたら、何をやりたいかをもう少し書いていただけるといいかも。 _________________ たつごろー http://www.codeseek.net MCSE MCSD.NET、MCDBA、MCSA、MCAD Oracle Master Platinum 9i、Oracle Master Linux+ [ メッセージ編集済み 編集者: たつごろー 編集日時 2005-02-22 10:26 ] | ||||||||
|
投稿日時: 2005-02-22 18:13
みなさん、レスありがとうございます。
タイマーに近い方法ですが、別スレッドを作ってそちら側 で処理を行うことにしました。 プライオリティの設定を調整すればなんとかパフォーマンスも 大丈夫そうです。 最初にきくちゃんのやり方と同じことをやってみたのですが、 これだと完全に表示されない状態で、処理が走ってしまい結局 うまくいきませんでした。 とりあえず現状はうまくいってます。 お世話になりました。 | ||||||||
|
投稿日時: 2005-02-22 21:33
ガーフィールドさん、こんばんは。
あらら、そうですか。 参考までに、こんな感じ↓で、レンダリング完了後の画面をキャプチャできましたよ。
| ||||||||
|
投稿日時: 2005-02-23 19:17
見落としてた。
きくちゃんさんの方法で、イベントはアイドルイベント。 _________________ |
1